Как правильно освободить 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"?