我创建了一个可启动 USB 驱动器amd64 的 Debian 网络安装程序。我想在安装程序中包含一些非自由固件,但 USB 驱动器上安装程序的文件系统是只读的。
我知道有一个包含非免费固件的安装程序,但出于学习目的,我想知道如何使其可写,以便我可以创建自己的自定义安装程序。
首先我尝试了旧的 chmod:
$ sudo chmod 777 -R 'media/maxim/Debian 9.4.0 amd64 n'
但 USB 驱动器上的每个文件和文件夹都出现以下错误:
chmod: changing permissions of 'Debian 9.4.0 amd64 n': Read-only file system
谷歌搜索后我了解到 chmod 需要写入权限来更改文件权限,因此 chmod 无论如何都无法实现我想要实现的目标。
然后我尝试了以下命令:
$ sudo hdparm -r0 /dev/sdb1
/dev/sdb1:
setting readonly to 0 (off)
readonly = 0 (off)
但这不起作用,它仍然是只读的。我也尝试用/dev/sdb
而不是相同的结果来做到这一点/dev/sdb1
。
然后我尝试用 rw 重新安装它,但这也不起作用:
$ sudo mount -o remount,rw /dev/sdb1
mount: /media/maxim/Debian 9.4.0 amd64 n: cannot remount /dev/sdb1 read-write, is write-protected.
所以基本上我的问题是:如何使 Debian 安装程序的文件系统写入 USB 驱动器可写?
答案1
安装程序是 ISO9660 (CD-ROM) 文件系统。没有办法让它可写。您无法就地修改它。你必须重建它。
在较低级别,您希望将文件复制到可写文件系统上的目录(例如~/myinstaller
),进行更改,并使用genisoimage
或创建新的 ISO 映像xorriso
。您可能需要添加一些选项才能使映像可引导。
如果您不想弄脏自己的手,请获取debian-cd
构建官方 Debian 安装映像的软件包,并使用它来构建您的自定义安装程序。或者看看您想要的定制是否可以由simple-cdd
.
答案2
Wumpus 的说法是正确的,只是 Debian 安装程序承诺准备使用固件附加分区,而无需重新打包 ISO。看 https://www.debian.org/releases/stretch/amd64/ch04s03.html.en,在第 4.3.1 段末尾,关于“sdX2”和“tar”。
也就是说,用于创建 Debian netinst ISO 的 xorriso 选项发布在该 ISO 名为“/.disk/mkisofs”的文件中。其中许多是用于 Jigdo 制作并以“-jigdo”开头。您可以省略它们。
如果您想获取某些可启动 ISO 的启动选项建议,请运行
xorriso -indev debian-9.4.0-amd64-netinst.iso -report_system_area as_mkisofs
您可以使用文件路径“/usr/lib/ISOLINUX/isohdpfx.bin”,而不是建议的“--interval:local_fs:...-netinst.iso”,或者从 ISO 中剪切一个 MBR 模板文件:
dd if=debian-9.4.0-amd64-netinst.iso bs=1 count=432 of=isohdpfx.bin