4.4. 实现

为了使某些命令能够工作,我们需要一个可读写的文件系统。内核的通常行为是将根目录挂载为只读,但我们可以使用内核选项来更改此行为。通过将以下内核选项传递给内核rw选项在init=/bin/sh之前,我们将获得一个可读写的根文件系统。

4.4.1. 系统启动

按照以下步骤启动系统。

终端显示应类似于以下示例。

GNU GRUB version 0.95

grub> kernel (fd0)/boot/vmlinuz rw init=/bin/sh root=/dev/fd0 load_ramdisk=1 prompt_ramdisk=1
   [Linux-bzImage, setup=0xc00, size=0xce29b]

grub> boot

Linux version 2.4.26
..
.. [various kernel messages]
..
VFS: Insert root floppy disk to be loaded into RAM disk and press ENTER
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem) read-write.
Freeing unused kernel memory: 178k freed
# _

4.4.2. 测试新命令

现在系统已经启动并运行,尝试使用一些新命令。

bash# uname -a
bash# ls /etc
bash# echo "PocketLinux" > /etc/hostname
bash# hostname $(cat /etc/hostname)
bash# uname -n
bash# mkdir /home/stuff
bash# cd /home/stuff

如果一切顺利,像 catlshostname 这样的命令现在应该可以工作了。甚至 mkdir 也应该可以工作,因为根文件系统是以读写方式挂载的。当然,由于我们使用的是 ramdisk,一旦 PC 重启,任何更改都将丢失。

4.4.3. 系统关机

从 fd0 中移除软盘,并使用 CTRL-ALT-DELETE 重启系统。