From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4288CA9C.9030609@vzljot.ru> Date: Mon, 16 May 2005 20:30:20 +0400 From: Vitaly Ostanin User-Agent: Mozilla Thunderbird 1.0 (X11/20050202) X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: ALT Devel discussion list References: <428498E9.9010205@vzljot.ru> <20050513121543.GA32124@master.mivlgu.local> <4284C2BB.5020601@vzljot.ru> <4285ADA3.4060205@altlinux.com> In-Reply-To: <4285ADA3.4060205@altlinux.com> X-Enigmail-Version: 0.90.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigE46CFA7B7AF176A5117559D0" X-Virus-Scanned: by amavisd-new at vzljot.ru Subject: [devel] Re: label detection at boot time X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2005 16:30:22 -0000 Archived-At: List-Archive: List-Post: This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigE46CFA7B7AF176A5117559D0 Content-Type: multipart/mixed; boundary="------------040708060104010904030604" This is a multi-part message in MIME format. --------------040708060104010904030604 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Anton Farygin пишет: > Рекомендую пересмотреть в корне схему добавления usbroot, написав скрипт > в /etc/dev.d для блочных устройств. Postinstall скрипт и системный скрипт из него в аттаче. При загрузке виснет с kernel oops с упоминанием unionfs, очень похож на тот oops, что я недавно присылал. Виснет после добавления бранча на флешке для /etc, после этого реагирует только на Alt+SysRq. Livecd сделан из: kernel-image-std26-up-2.6.11-alt8.i586.rpm unionfs-utils-1.0.11-alt1.i586.rpm -- Regards, Vyt mailto: vyt@vzljot.ru JID: vyt@vzljot.ru --------------040708060104010904030604 Content-Type: text/plain; name="05usbroot" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="05usbroot" cat <> $ROOT/etc/uniontab /etc /home /root /var/mail E_O_F $in_chroot /bin/mkdir -p /etc/dev.d/block cat <> $ROOT/etc/dev.d/block/usbdrive.dev #!/bin/sh -x # # USB drive hotplug agent for 2.6 kernels # # ACTION=add # DEVPATH=/block/* # cd /etc/hotplug . ./hotplug.functions SourceIfNotEmpty /etc/sysconfig/hotplug if [ "\$HOTPLUG" == "no" -o "\$USBPLUG" == "no" ];then exit 0 fi STATEPATH=/var/lib/hotplug UNIONTAB=/etc/uniontab UNIONCTL=/usr/sbin/unionctl MOUNT=/bin/mount USBROOT=/media/storage_usbroot [ -x \$UNIONCTL -a -x \$MOUNT ] || exit 1 function restart_services() { mesg "Restarting services with \"usbroot\" settings..." [ -s \$USBROOT/etc/sysconfig/clock ] && /sbin/service clock start [ -d \$USBROOT/etc/net ] && /sbin/service network restart } function add_unionfs_branches_to_usbroot() { mesg "Adding unionfs branches to \$USBROOT" grep -ve '^\(#\|\$\)' \$UNIONTAB |while read mntpt; do if [ -d \$mntpt ]; then mkdir -p \$USBROOT/\$mntpt mesg "Adding unionfs rw branch for \$mntpt to \$USBROOT/\$mntpt ..." \$UNIONCTL \$mntpt --add --mode rw \$USBROOT/\$mntpt && \ mesg "Successfully added unionfs branch for \$mntpt" || \ mesg "Adding unionfs branch for \$mntpt failed." fi [ \$mntpt == /etc ] && restart_services done } function mount_usbroot() { /bin/mkdir \$USBROOT mesg "Trying to mount /dev/\$NAME to \$USBROOT ..." \$MOUNT /dev/\$NAME \$USBROOT -o sync && mesg "Successfully mounted." || exit 1 mesg "Removing \$USBROOT/etc/mtab" rm -f \$USBROOT/etc/mtab if [ -s \$UNIONTAB ]; then add_unionfs_branches_to_usbroot fi } case \$ACTION in add) # FIXME: how to detect LABEL from udev (or HAL) ? NAME=\`udevinfo -q name -p \$DEVPATH\` # FIXME: remove trailing space from blkid output ? LABEL=\`blkid /dev/\$NAME -s LABEL | cut -d '=' -f2\` [ \$LABEL == \"usbroot\" ] || exit 0 mesg "Found label \$LABEL on \$DEVPATH" mount_usbroot exit 0 ;; remove) # FIXME: udevinfo not works without device NAME=\`udevinfo -q name -p \$DEVPATH\` umount /dev/\$NAME exit 0 ;; *) debug_mesg USB drive \$ACTION event not supported exit 1 ;; esac E_O_F $in_chroot /bin/chmod 755 /etc/dev.d/block/usbdrive.dev --------------040708060104010904030604 Content-Type: text/plain; name="usbdrive.dev" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="usbdrive.dev" #!/bin/sh -x # # USB drive hotplug agent for 2.6 kernels # # ACTION=add # DEVPATH=/block/* # cd /etc/hotplug . ./hotplug.functions SourceIfNotEmpty /etc/sysconfig/hotplug if [ "$HOTPLUG" == "no" -o "$USBPLUG" == "no" ];then exit 0 fi STATEPATH=/var/lib/hotplug UNIONTAB=/etc/uniontab UNIONCTL=/usr/sbin/unionctl MOUNT=/bin/mount USBROOT=/media/storage_usbroot [ -x $UNIONCTL -a -x $MOUNT ] || exit 1 function restart_services() { mesg "Restarting services with \"usbroot\" settings..." [ -s $USBROOT/etc/sysconfig/clock ] && /sbin/service clock start [ -d $USBROOT/etc/net ] && /sbin/service network restart } function add_unionfs_branches_to_usbroot() { mesg "Adding unionfs branches to $USBROOT" grep -ve '^\(#\|$\)' $UNIONTAB |while read mntpt; do if [ -d $mntpt ]; then mkdir -p $USBROOT/$mntpt mesg "Adding unionfs rw branch for $mntpt to $USBROOT/$mntpt ..." $UNIONCTL $mntpt --add --mode rw $USBROOT/$mntpt && mesg "Successfully added unionfs branch for $mntpt" || mesg "Adding unionfs branch for $mntpt failed." fi [ $mntpt == /etc ] && restart_services done } function mount_usbroot() { /bin/mkdir $USBROOT mesg "Trying to mount /dev/$NAME to $USBROOT ..." $MOUNT /dev/$NAME $USBROOT -o sync && mesg "Successfully mounted." || exit 1 mesg "Removing $USBROOT/etc/mtab" rm -f $USBROOT/etc/mtab if [ -s $UNIONTAB ]; then add_unionfs_branches_to_usbroot fi } case $ACTION in add) # FIXME: how to detect LABEL from udev (or HAL) ? NAME=`udevinfo -q name -p $DEVPATH` # FIXME: remove trailing space from blkid output ? LABEL=`blkid /dev/$NAME -s LABEL | cut -d '=' -f2` [ $LABEL == \"usbroot\" ] || exit 0 mesg "Found label $LABEL on $DEVPATH" mount_usbroot exit 0 ;; remove) # FIXME: udevinfo not works without device NAME=`udevinfo -q name -p $DEVPATH` umount /dev/$NAME exit 0 ;; *) debug_mesg USB drive $ACTION event not supported exit 1 ;; esac --------------040708060104010904030604-- --------------enigE46CFA7B7AF176A5117559D0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCiMqcXQgvvSRg+k4RAhCWAJ9GiaZqyXYJce47FsrBfPNKc/Fv/gCgjNYy xlwiWwoZRDlSX8nHXcRoiJM= =ejRk -----END PGP SIGNATURE----- --------------enigE46CFA7B7AF176A5117559D0--