How to umount initrd?
Pan ruochen
panruochen at gmail.com
Fri Oct 30 11:37:15 UTC 2009
Hi All,
I am porting Linux. I desire the system to start up in the flowing steps:
1. Kernel mount rootfs from initrd.
2. Install the NTFL drivers.
3. Mount the real filesystem which resides in NAND flash and change
root from initrd to nand.
4. Umount initrd to reclaim system memory.
All seem okay except step 4.
Here is my linuxrc script:
=====================================================================
#!/bin/sh
mkdir /sysroot
mkdir /sysroot/dev
mknod /sysroot/dev/console c 5 1
mknod /sysroot/dev/null c 1 3
mknod /sysroot/dev/nftla b 93 0
mknod /sysroot/dev/nftla1 b 93 1
cd sysroot
exec <dev/console >dev/console 2>&1
insmod /lib/modules/2.6.27.29/nftl.ko
mount -t ext2 dev/nftla1 .
cd /sysroot
pivot_root . old_root
umount -n /old_root
exec chroot . /sbin/init
=====================================================================
I got an error as:
can't umount /old_root: Device or resource busy
The kernel command line is
mem=32M rd_start=0x80800000 rd_size=8M root=/dev/ram0 rw
console=ttyS1,115200n8 init=/linuxrc
And `mount' shows:
rootfs on / type rootfs (rw)
/dev/root on /old_root type ext2 (rw,errors=continue)
dev/nftla1 on / type ext2 (rw,errors=continue)
none on /proc type proc (rw)
What is wrong?
PRC
Oct 30,2009
More information about the busybox
mailing list