【问题标题】:Load root filesystem from USB device从 USB 设备加载根文件系统
【发布时间】:2021-10-25 13:28:40
【问题描述】:

我正在尝试快速重启另一个 Linux 系统。第一步是内核加载,我使用
sudo kexec --append='$(cat /proc/cmdline)' -l new_kernel.img --reuse-cmdline
sudo kexec -e
它工作正常,但只加载内核,而不是整个系统。

如何挂载带有操作系统资源的*.img 文件,该文件位于USB 中,名称为/?在内核加载期间最好,但之后挂载仍然合适。 *.img格式不是必须的,之前可以解包

【问题讨论】:

  • 你想要 pivot_root
  • 来自手册页:pivot_root() 更改调用进程挂载命名空间中的根挂载。不过最后也少说switch_root(),好像更适合我的目的

标签: linux filesystems startup reboot rootfs


【解决方案1】:

正如 stark 所说,pivot root() 是我正在寻找的调用。使位于 /dev/sdb1 的 USB 成为根目录的命令:

sudo -s
mkdir /newroot
mount /dev/sdb1 /newroot
cd /newroot
mkdir oldroot
pivot_root . oldroot/

switch_root() 删除之前根目录下的所有文件,也有一些其他区别,this answer 可能有用

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多