Как правильно освободить initrd?

Я создал начальный загрузочный диск Linux (initrd) для встроенной системы, работающей на собственном ядре 2.6:

#!/bin/ash
echo "Using BusyBox 1.25.1 for initrd..."
echo Mounting /proc filesystem...
mount -t proc proc /proc
echo Mounting /sys filesystem...
mount -t sysfs sys /sys
echo Loading kernel modules... IDE harddisks
insmod /lib/modules/ide/ide-core.ko
insmod /lib/modules/ide/ide-generic.ko
insmod /lib/modules/ide/ide-disk.ko
echo Loading kernel modules... nls
insmod /lib/modules/fs/nls/nls_iso8859-1.ko
echo Loading kernel modules... filesystems
insmod /lib/modules/fs/jbd.ko
insmod /lib/modules/fs/ext3.ko
insmod /lib/modules/fs/cifs.ko
echo Loading kernel modules... ethernet
insmod /lib/modules/net/e1000.ko
echo Loading kernel modules... scsi
insmod /lib/modules/scsi/scsi_mod.ko
echo Loading kernel modules ... usb
insmod /lib/modules/usb/usbcore.ko
insmod /lib/modules/usb/ohci-hcd.ko
insmod /lib/modules/usb/uhci-hcd.ko
insmod /lib/modules/usb/ehci-hcd.ko
insmod /lib/modules/usb/usb-storage.ko
echo Creating block devices...
mount -t tmpfs -o size=64k,mode=0755 tmpfs /dev
mdev -s
echo Creating root device...
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem...
mkdir /newroot
mount -t ext3 /dev/hda /newroot -o ro
echo Switch to new root filesystem...
cd /newroot
pivot_root . initrd
echo Remount root file system as read/write...
mount -o remount,rw / 
exec chroot . sh -c 'umount /initrd/proc;  \
umount /initrd/sys; umount /initrd/dev; exec /sbin/init' \ 
 <dev/console >dev/console 2>&1
umount /initrd/proc
umount /initrd/sys
umount /initrd/dev

Он загружается в оболочку, и мои точки монтирования таковы:

/dev/root.old on /initrd type ext2 (rw)
/dev/hda on / type ext3 (rw)
/dev/hdb on /user/oapack type ext3 (rw)
proc on /proc type proc (rw,nodiratime)
tmpfs on /dev/shm type tmpfs (rw)

Мой вопрос: достаточно ли выполнить команду "umount /initrd", чтобы восстановить память, используемую виртуальным диском, или мне также нужно выполнить команду "blockdev --flushbufs"?

0 ответов

Другие вопросы по тегам