为 iso debian 文件手动创建 grub 条目:无法复制 cdrom

为 iso debian 文件手动创建 grub 条目:无法复制 cdrom

我正在尝试手动创建自己的自定义 USB 驱动器,上面有一堆 iso 文件和一个数据分区。我使用了此处放置的指令来创建密钥,但总而言之,我已经完成了

  • /dev/sda1数据分区
  • /dev/sda2安装了 grub 的分区
  • /dev/sda3文件夹中包含我的 iso 文件的分区linux-iso/

我在文件中放入了grub2/grub/conf以下/dev/sda2文件:

insmod loopback
insmod iso9660

menuentry 'XUbuntu 16.04 "Xenial Xerus" -- amd64' {
          set isofile="/linux-iso/xubuntu-16.04.1-desktop-amd64.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux  (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
          initrd (loop)/casper/initrd.lz
}

menuentry 'Debian 9.3.0 amd64 netinst test 3' {
          set isofile="/linux-iso/debian-9.3.0-amd64-netinst.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux (loop)/install.amd/vmlinuz priority=low config fromiso=/dev/sdb3/$isofile
          initrd (loop)/install.amd/initrd.gz
}

这样,当我加载 ubuntu 时,一切都工作得很好...但是当我加载 debian 时,它在“配置 CD-Rom”步骤中失败,并出现错误:

Incorrect CD-ROM detected.
The CD-ROM drive contains a CD which cannot be used for installation.
Please insert a suitable CD to continue with the installation."

我也尝试挂载/dev/sdb3/cdrom,但在这种情况下,下一步会出现错误:

Load installer components from CD:
There was a problem reading data from the CD-ROM. Please make sure it is in the drive.
Failed to copy file from CD-ROM. Retry?"

你知道如何解决这个问题吗?

谢谢你!

答案1

看起来这与 grub 无关或者你的conf 有问题;好像是Debian相关的,基于本文并逐字引用:

现在,当我第一次尝试以这种方式启动最新的 Debian 安装程序时,我遇到了一些问题。事实证明,ISO 本身附带的 initrd 不包含您需要从硬盘驱动器上的 ISO 安装的安装程序脚本。它假定您只能从 DVD 或 USB 磁盘启动。因此,我发现我必须下载不同的 Debian 安装程序 initrd 并将其放在救援磁盘上才能正常工作。我能够找到一个在这里工作的 initrd 。

这里的意思是这样的文件但就你而言应该是这个其他文件
我建议阅读全文和有关该问题的部分内容。祝你好运

答案2

我还收到错误“检测到不正确的 CD-ROM”。以下内核选项和设置设备的技巧对我有用。

probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"

menuentry "Debian stretch 9.4 amd64 net install" {
    set isofile="$bootdir/debian-9.4.0-amd64-netinst.iso"
    loopback loop $isofile
    linux (loop)/install.amd/vmlinuz boot=live config iso-scan/ask_second_pass=true iso-scan/filename=${imgdevpath}/${isofile}
    initrd (loop)/install.amd/initrd.gz
}

相关内容