如何使 Debian 安装程序文件系统可写(以自定义安装程序)

如何使 Debian 安装程序文件系统可写(以自定义安装程序)

我创建了一个可启动 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

相关内容