![如何在 Debian 安装启动时将 /dev/sdb 挂载到 /cdrom](https://linux22.com/image/14189/%E5%A6%82%E4%BD%95%E5%9C%A8%20Debian%20%E5%AE%89%E8%A3%85%E5%90%AF%E5%8A%A8%E6%97%B6%E5%B0%86%20%2Fdev%2Fsdb%20%E6%8C%82%E8%BD%BD%E5%88%B0%20%2Fcdrom.png)
我正在尝试使用此官方 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 驱动器”的对话框:
因此,我可以继续在输入对话框中手动指定安装介质为/dev/sdb
,然后当我单击“继续”时,安装会继续,这是我/dev/sdb
在输入框中指定并且安装继续没有问题的屏幕截图:
由于我希望这是自动化的,有没有办法/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 能否被识别取决于您的芯片组。