AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 775552
Accepted
Ray Andrews
Ray Andrews
Asked: 2024-04-30 22:18:48 +0800 CST2024-04-30 22:18:48 +0800 CST 2024-04-30 22:18:48 +0800 CST

制作Debian USB,错误的initrd.img

  • 772

因此,一旦我了解到(当然是这里)“live USB”无法安装或写入,我就停止尝试用我的文件更新我的 Debian 12 安装映像,并重新开始使用新的棒。复制了适当的内容,用我忠实的 LILO 将其烧录到 MBR 上,然后出现......奇怪的错误。十几份关于“女士,未找到阵列”的报告,最终:“警报!” 没有根文件系统”。(根 FS 绝对没有任何问题。)

然后我将内核和 initrd.img 从 Debian 12 棒复制到新棒,再次运行 LILO 并......胜利!棍子靴子。显然,之前的 initrd.img 缺少一些东西——在 HDD 启动时工作正常,但在 USB 记忆棒上无法工作。我可以诊断一下吗?弄清楚到底缺少了什么?我想了解有关 initrd.img 是如何创建的更多信息。也许重建有缺陷的.img?问题是 Debian 12 文件是 6.1.0-18 版本,而我的 HDD 运行的是 6.1.0-20,我希望 USB 是最新的。

debian
  • 1 1 个回答
  • 30 Views

1 个回答

  • Voted
  1. Best Answer
    David G.
    2024-05-01T06:34:28+08:002024-05-01T06:34:28+08:00

    我认为问题出在 LILO 和 USB 设备的组合上。我认为 LILO 希望设备标识保持不变。USB 设备可能会到处移动,尤其是在不同的计算机上。

    我建议改用 GRUB,并确保它使用“搜索”命令通过 UUID(或标签)来定位磁盘。另外,请确保每个文件系统都是唯一的(即不要克隆磁盘),以便 UUID 是不同的。


    至于initrd...听起来您复制的系统使用了一些RAID设备。这将使用“mdadm”(我相信您将其误复制为“女士”)。一般来说,initrd 应该在它将引导的系统上下文中生成。因此,您可以在 USB 上安装所有内容,挂载它,在该挂载中挂载(或绑定挂载)/proc、/dev、/sys 等,然后chroot挂载到已挂载的 USB。然后,您应该构建 initrd。(或者,如果可以启动它,则可以执行 do 并构建一个新的 initrd。)

    如果您确实希望在 USB 和普通磁盘上使用相同的 initrd,则可能需要安装相同的软件包子集来将内容放入/usr/share/initramfs-tools/. (其中的文件名通常是包名称,这有助于识别它们。)我不建议打扰。

    您可能还需要检查引导命令行,以确保它没有引用 RAID 设备。


    如果您可以启动 USB,并且只想重建 initrd,并且假设您正在使用 initramfs-tools,则可以是:

    # update-initramfs -u
    

    或者如果这没有任何作用(因为你还没有 initrd):

    # update-initramfs -c -k <your-installed-kernel-version>
    

    要从主机重建 USB initrd,假设您的 USB 设备是/dev/sdc,其引导分区是/dev/sdc2,根分区是/dev/sdc3。假设您有一个空目录/mnt/usb。并假设您已经作为 运行root。

    # mount /dev/sdc3 /mnt/usb
    # mount /dev/sdc2 /mnt/usb/root
    # mount -tproc proc /mnt/usb/proc
    # mount -tsysfs sysfs /mnt/usb/sys
    # mount -obind /dev /mnt/usb/dev
    # mount -ttmpfs tmp /mnt/usb/tmp
    # mount -ttmpfs tmp /mnt/usb/run
    # mount -ttmpfs tmp /mnt/usb/dev/shm
    # chroot /mnt/usb
    

    此时,你逻辑上已经在USB设备中了(只不过所有的系统服务都在主机中运行,并且某些大小限制是错误的。现在要更新initrd,如上所述。

    除非您想在运行时保留在 USB 文件系统中,否则您应该使用exit或 control-D 来离开 chroot。

    然后使用以下命令卸载所有内容:

    # umount /mnt/usb/dev/shm /mnt/usb/run /mnt/usb/tmp /mnt/usb/dev /mnt/usb/sys /mnt/usb/proc /mnt/usb/root /mnt/usb
    

    通常,您不需要手动运行 update-initramfs,因为安装脚本会自动执行此操作。如果您从源代码安装内核,或者执行诸如构建新根(例如在 USB 上)之类的操作,则此操作可能会失败。

    • 1

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve