Bor*_*kov 3 linux boot kernel initramfs root-filesystem
我正在尝试各种 Linux 安装方式(从 iso、flash、iso on flash、kernel on flash、root FS in iso-file on flash...)并想了解发生了什么。
我的问题是:是否有可能,根据发行版(vmlinuz 和 initrd)中构建的内核和 ramfs 文件,找出他们将在哪里寻找“/”文件系统?是否可以在不重新编译内核的情况下进行配置?
还有一个:当内核从环回设备加载根文件系统时,从 .iso-filesystem 创建,我该如何配置这个过程?谢谢!
编辑: 实际上,GRUB 配置包含 GRUB 根目录,它不是真正的内核根文件系统位置,而只是一个包含 GRUB 物品的文件夹。
真正的根是在init脚本中配置的,initrd如here所述。
这就是 Debian 内核如何在硬盘驱动器上找到 ISO 文件,从它启动时 - initramfs 找到它:http : //www.debian.org/releases/stable/i386/apas02.html.en#howto-getting-images-hard -磁盘; 请注意,GRUB 配置不包含对 ISO location 的任何引用。
它在启动时由您的bootloader 提供,例如 Grub。
要查看您的内核使用哪些参数启动,请执行以下操作:
$ cat /proc/cmdline
Run Code Online (Sandbox Code Playgroud)
对我来说,这个输出:
BOOT_IMAGE=/vmlinuz-3.5.0-13-generic root=/dev/mapper/crypt-precise--root ro
Run Code Online (Sandbox Code Playgroud)
因此 initrd/initramfs 将尝试将我的/dev/mapper/crypt-precise--root(加密 LVM)逻辑卷挂载为/.
您可以重新配置 Grub 以使用相同的内核(多重引导)从您的硬盘驱动器加载其他操作系统,或者通过e在选择(尚未引导)Grub 条目的同时按下来编辑此行运行时。
对于最近的基于 Debian 的发行版,永久更改它的工作方式如下:(
小心,您可能无法再次启动到原始操作系统!)
在文件中/etc/default/grub设置一些GRUB_CMDLINE_LINUX="root=/dev/mydevice"你自己并通过执行update-grub.
但是,我建议您配置多重引导,否则无法轻松地再次更改或更新您的 Grub 配置。