如何在 Debian 安装启动时将 /dev/sdb 挂载到 /cdrom

如何在 Debian 安装启动时将 /dev/sdb 挂载到 /cdrom

我正在尝试使用此官方 ISO 文件安装 Debian 10:

http://cdimage.debian.org/cdimage/release/current/amd64/iso-cd/debian-10.9.0-amd64-netinst.iso

我将此 ISO 文件修改为自动化preseed.cfg,使用 打包它,然后使用以下命令xorriso将此 ISO 文件写入名为的磁盘中:/dev/sdb

wget -O mini.iso http://url_to_download_the_modified_debian_iso_with_preseed.iso
mv *.iso mini.iso
dd if=mini.iso of=/dev/sdb

请注意,这/dev/sdb是第二个磁盘分区而不是闪存驱动器

然后,当我使用/dev/sdb作为根驱动器启动此 ISO 时,它可以启动,但出现以下有关“未检测到通用 CD-ROM 驱动器”的对话框:

截图1

因此,我可以继续在输入对话框中手动指定安装介质为/dev/sdb,然后当我单击“继续”时,安装会继续,这是我/dev/sdb在输入框中指定并且安装继续没有问题的屏幕截图:

截图2

由于我希望这是自动化的,有没有办法/dev/sdb在安装开始时在扫描磁盘之前自动安装它?我找不到任何预置命令来自动跳过此对话框。

我尝试了以下几种方法并将其添加到preseed.cfg但根本不起作用(我注意到第三种方法,该脚本仅在我/dev/sdb在对话框中指定CD-ROM路径后单击“继续”后运行)

1) d-i partman/early_command string mount /dev/sdb /cdrom

2) d-i cdrom-detect/cdrom_device string /dev/sdb
        
3)

d-i preseed/early_command string \
        umount /cdrom; \
        mkdir -p /cdrom; \
        mount -t vfat /dev/sdb /cdrom

请注意,如果我使用此 ISO 文件在具有预定义的 Virtualbox 中安装preseed.cfg,它会自动运行良好,直到我获得工作 Debian 操作系统(无 CD-ROM 对话框),但在 linode 服务器中,这是一个问题,因为它不在 BIOS 中启用了 CD-ROM。因此,在 linode 中安装此 ISO 的推荐方法是从我直接将 ISO 放入的硬盘启动/dev/sdb

答案1

创建 Debian netinst ISO 映像主要是为了刻录在 CD (DVD) 上。几年前,稍微修改了一下,可以保存在U盘上。修改添加了一个假 MBR 扇区,该扇区指向从扇区 0 开始的第一个可引导分区!我没有尝试将此类 ISO 映像放置到常规磁盘设备上。 USB子系统可以识别各种类型的USB设备,包括USB大容量存储器和USB CD-ROM驱动器。

ISO镜像无法用普通方式复制到USB闪存,必须使用以下命令:

dd if=debian.iso of=/dev/sd_usbdevice

因为您操作的是属于块设备的数据。

好吧,我建议您保持标准方式。最好使用标准刻录的 CD-R 或 USB 闪存盘。

如果您坚持自己的方式,请尝试使用 dd 命令将 ISO 映像放在 /dev/sdb 上。 ISO 能否被识别取决于您的芯片组。

相关内容