作者kdjf (我抓得到什麼呢?)
看板Linux
標題[問題] 開機時根目錄用aufs, move mount
時間Thu Oct 18 21:50:36 2012
(1):
今天原本的目標是在initramfs時,把root fs用aufs包起來(像live CD)
所以從 kernel cmdline開始:
linux vmlinuz break=mountroot ...
(initramfs) mkdir /root/ro /root/rw
(initramfs) mount -t ext4 -r /dev/sda1 /root/ro
(initramfs) insmod /root/ro/lib/modules/.../kernel/fs/aufs/aufs.ko
(initramfs) mount -t tmpfs /root/rw
(initramfs) mount -t aufs -o br:/root/rw:/root/ro /root
(initramfs) ls /root
/bin .....
這時writeable root看起來弄好了
(initramfs) >/root/root/test
(initramfs) ls /root/root
test
(Ctrl-D)
..........
login:
可是在登入後,/root底下沒有東西,也變成唯讀的了
(2)在平常的shell下
# chroot /bin/ /busybox
chroot: failed to run command `/busybox': No such file or directory
不知到為什麼會這樣,static linked binary也會有dependency?
strace看到的結果是:
chroot("/bin/") = 0
chdir("/") = 0
execve("/busybox", ["/busybox"], [/* 15 vars */]) =
-1 ENOENT (No such file or directory)
又是很怪的問題了,謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.245.32
→ DEATHX:我學長改完initrd的script是mount aufs後直接pivot chroot 10/19 02:44
→ DEATHX:我的作法更暴力,進去系統時在mountall前先做aufs mount 10/19 02:45
→ DEATHX:在修掉kernel中squashfs對mount會強制加上ro flag,這樣就 10/19 02:47
→ DEATHX:可以不經initrd直接掛起squashfs後進系統,apt-get也不會因 10/19 02:48
→ DEATHX:/是ro就不給我"暫時"的安裝package在aufs的系統下。 10/19 02:49
→ kdjf:你的意思是:改掉ro flag就可以讓kernel把東西暫時放到buffer? 10/19 06:49
→ DEATHX:如果kernel不做patch,掛squashfs當/的話,/一定是ro 10/19 09:00
→ DEATHX:apt-get跟dpkg在安裝的時候如果看到/是ro就直接出錯了 10/19 09:00