📌  相关文章
📜  initramfs ubuntu 20.04 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:50.295000             🧑  作者: Mango

initramfs Ubuntu 20.04 - Shell/Bash

介绍

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:文件系统根目录的类型(例如ext4btrfsxfs等)

更改此文件后,您需要重新生成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