📅  最后修改于: 2023-12-03 15:15:50.295000             🧑  作者: Mango
initramfs
是一个轻量级的Linux初始化文件系统。在启动过程中,它被加载到内存中,并在系统启动之前运行。initramfs
中包含必要的文件和脚本,以便启动系统所需要的驱动程序和文件系统。
本文将介绍如何使用Shell/Bash在Ubuntu 20.04中配置和管理initramfs
。
initramfs-tools
是Ubuntu 20.04中默认安装的软件包。如果您需要安装它,可以使用以下命令:
sudo apt-get update
sudo apt-get install initramfs-tools
initramfs
的配置文件为/etc/initramfs-tools/initramfs.conf
。您可以使用任何文本编辑器打开此文件进行编辑。在这个文件中,您可以配置许多不同的选项,例如:
MODULES
: 要在initramfs
中包含哪些内核模块BOOT
:是否自动从硬盘引导(如果是则为local
,否则为nfs
)DEVICE
:要使用的块设备名称ROOT
:文件系统根目录的类型(例如ext4
、btrfs
、xfs
等)更改此文件后,您需要重新生成initramfs
:
sudo update-initramfs -u -k all
这将重新生成所有内核的initramfs
。
使用initramfs
的主要任务是在系统启动之前加载必要的驱动程序和文件系统。一旦它被加载进了内存,它会尝试识别和挂载根文件系统。
如果挂载根文件系统失败,initramfs
会启动一个维护Shell,并允许您手动诊断和修复问题。此Shell可以通过按下Enter
键进入。
要在initramfs
中运行脚本,您可以将它们添加到/etc/initramfs-tools/scripts
目录中。例如,您可以添加一个脚本来挂载/usr
分区:
#!/bin/sh
PREREQ=""
prereqs() {
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
mount /dev/sda2 /usr
记得要将脚本的执行权限设置为755
:
sudo chmod 755 /etc/initramfs-tools/scripts/mount_usr
在重新生成initramfs
之后,此脚本将被包含在其中,并在启动时自动运行。
initramfs
是一个非常重要的组件,它可以让您配置和管理系统启动所需的文件和驱动程序。使用本文提供的方法,您可以在Ubuntu 20.04中有效地配置和管理initramfs
。