From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <441FBC38.8050505@altlinux.org> Date: Tue, 21 Mar 2006 11:41:28 +0300 From: Eugene Prokopiev User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.7.2) Gecko/20040808 X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: ALT Devel discussion list References: <441EA9CC.6060203@altlinux.org> In-Reply-To: <441EA9CC.6060203@altlinux.org> Content-Type: multipart/mixed; boundary="------------020902030508080007060504" Subject: Re: [devel] =?koi8-r?b?LyDOwSBMVk0yIMkg08/Q1dTT1NfVwN3JxSDQ0s/CzMXN?= =?koi8-r?b?2Q==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.7 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: Tue, 21 Mar 2006 08:41:41 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------020902030508080007060504 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit > Собственно, пока я вижу такие проблемы: > > 1) куда перенести fsck? Я перенес инициализацию devmapper, evms, raid и lvm перед swapon - так было в ALM 2.4. Есть серьезные причины, по которым порядок был изменен? Поскольку lvm желает модифицировать / , мне пришлось временно перемонтировать его в rw, а потом вернуть обратно в ro. В ALM 2.4 этого не было, и мне не понятно, как в таком случае все работало. > 2) как в /dev создать необходимые устройства при загрузке (vgscan > --mknodes в rc.sysinit?) vgmknodes > 3) как убедить udevd это не портить? модифицировал /etc/udev так, как описано в https://bugzilla.altlinux.org/show_bug.cgi?id=7369 и собрал (пока не в пакет) devmap_name. Теперь все работает как мне нужно. Если такие вещи положено обсуждать в багзилле, давайте переедем туда. Что теперь нужно сделать, чтобы в нынешний Сизиф вернулась возможность держать / на LVM (наверняка EVMS потребует того же)? Я прошу отвечающих за rc.sysinit и udev внести туда необходимые исправления. В свою очередь, я могу собрать в пакет devmap_name (из c-файла, makefile и man), от которого должен будет зависеть udev. multipath-tools я собирать не берусь, т.к. пока он мне не нужен. Если в будущем он появится в Сизифе, можно будет заменить им devmap_name. Да, патч к rc.sysinit в аттаче. Я знаю, что он ужасен, но как сделать лучше? -- С уважением, Прокопьев Евгений --------------020902030508080007060504 Content-Type: text/x-patch; name="rc.sysinit.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="rc.sysinit.diff" --- ./rc.sysinit.orig 2006-03-21 09:41:51 +0300 +++ ./rc.sysinit 2006-03-21 11:12:27 +0300 @@ -86,6 +86,70 @@ # Set the system clock (when /etc/adjtime is missing) [ -s /etc/adjtime ] || /etc/init.d/clock start +action "Temorary remounting root filesystem in read/write mode:" mount -n -o remount,rw / + +# Load device-mapper, create its device file +if [ ! -e /dev/.devfsd -a -e /proc/devices -a -e /proc/misc ]; then + rm -f /dev/mapper/control + modprobe dm-mod >/dev/null 2>&1 + MAJOR="$(sed -ne 's/^ *\([0-9]\+\) \+misc$/\1/p' /proc/devices)" + MINOR="$(sed -ne 's/^ *\([0-9]\+\) \+device-mapper$/\1/p' /proc/misc)" + if [ -n "$MAJOR" -a -n "$MINOR" ]; then + mkdir -p -m755 /dev/mapper + action "Creating device-mapper character device ($MAJOR, $MINOR):" \ + mknod --mode=600 /dev/mapper/control c "$MAJOR" "$MINOR" + fi + unset MAJOR MINOR +fi + +# Activate EVMS +EVMS_ACTIVE= +STARTEVMS=/sbin/startevms +if [ -x "$STARTEVMS" ] && ! grep -iwqs noevms /proc/cmdline; then + action "Starting up EVMS:" "$STARTEVMS" init + EVMS_ACTIVE=1 +fi + +# Add raid devices +if [ -z "$EVMS_ACTIVE" ] && [ -f /proc/mdstat ]; then + # A non-zero return means there were problems. + if ! /etc/rc.d/scripts/raidstart; then + echo + echo + echo "*** An error occurred during the RAID startup" + echo "*** Dropping you to a shell; the system will reboot" + echo "*** when you leave the shell." + + PS1="(RAID Repair) \# # "; export PS1 + sulogin + + echo "Unmounting file systems" + umount -arnf + mount -n -o remount,ro / + echo "Automatic reboot in progress." + reboot -f + fi +fi + +# Activate LVM +VGMKNODES=/sbin/vgmknodes +VGCHANGE=/sbin/vgchange +if [ -e "$VGCHANGE" -a -e "$VGMKNODES" ]; then + modprobe lvm-mod >/dev/null 2>&1 + # for 2.4.x kernel and LVM1 binaris + if [ -d /proc/lvm -a ! -c /dev/mapper/control -a ! -x /sbin/lvm ]; then + "$VGMKNODES" >/dev/null 2>&1 + action "Setting up LVM:" "$VGCHANGE" -a y + fi + # for 2.6.x kernel and LVM2 binaris + if [ ! -d /proc/lvm -a -c /dev/mapper/control -a -x /sbin/lvm ]; then + "$VGMKNODES" >/dev/null 2>&1 + action "Setting up LVM2:" "$VGCHANGE" -a y + fi +fi + +action "Temorary remounting root filesystem in read-only mode:" mount -n -o remount,ro / + # Activate swap action "Activating swap partitions:" swapon -a -e @@ -258,66 +322,6 @@ ExecIfExecutable /sbin/setsysfont >/dev/null 2>&1 && SETSYSFONT_DONE=1 || SETSYSFONT_DONE= fi -# Load device-mapper, create its device file -if [ ! -e /dev/.devfsd -a -e /proc/devices -a -e /proc/misc ]; then - rm -f /dev/mapper/control - modprobe dm-mod >/dev/null 2>&1 - MAJOR="$(sed -ne 's/^ *\([0-9]\+\) \+misc$/\1/p' /proc/devices)" - MINOR="$(sed -ne 's/^ *\([0-9]\+\) \+device-mapper$/\1/p' /proc/misc)" - if [ -n "$MAJOR" -a -n "$MINOR" ]; then - mkdir -p -m755 /dev/mapper - action "Creating device-mapper character device ($MAJOR, $MINOR):" \ - mknod --mode=600 /dev/mapper/control c "$MAJOR" "$MINOR" - fi - unset MAJOR MINOR -fi - -# Activate EVMS -EVMS_ACTIVE= -STARTEVMS=/sbin/startevms -if [ -x "$STARTEVMS" ] && ! grep -iwqs noevms /proc/cmdline; then - action "Starting up EVMS:" "$STARTEVMS" init - EVMS_ACTIVE=1 -fi - -# Add raid devices -if [ -z "$EVMS_ACTIVE" ] && [ -f /proc/mdstat ]; then - # A non-zero return means there were problems. - if ! /etc/rc.d/scripts/raidstart; then - echo - echo - echo "*** An error occurred during the RAID startup" - echo "*** Dropping you to a shell; the system will reboot" - echo "*** when you leave the shell." - - PS1="(RAID Repair) \# # "; export PS1 - sulogin - - echo "Unmounting file systems" - umount -arnf - mount -n -o remount,ro / - echo "Automatic reboot in progress." - reboot -f - fi -fi - -# Activate LVM -VGSCAN=/sbin/vgscan -VGCHANGE=/sbin/vgchange -if [ -e "$VGCHANGE" -a -e "$VGSCAN" -a -s /etc/lvmtab ]; then - modprobe lvm-mod >/dev/null 2>&1 - # for 2.4.x kernel and LVM1 binaris - if [ -d /proc/lvm -a ! -c /dev/mapper/control -a ! -x /sbin/lvm ]; then - "$VGSCAN" >/dev/null 2>&1 - action "Setting up LVM:" "$VGCHANGE" -a y - fi - # for 2.6.x kernel and LVM2 binaris - if [ ! -d /proc/lvm -a -c /dev/mapper/control -a -x /sbin/lvm ]; then - "$VGSCAN" >/dev/null 2>&1 - action "Setting up LVM2:" "$VGCHANGE" -a y - fi -fi - # Check filesystems splash_update localfs 5 _RUN_QUOTACHECK=0 --------------020902030508080007060504--