System-Installation
如何在不需要 root 權限的情況下將 syslinux/extlinux 安裝到磁碟映像文件
我已經建構了一個本土 Linux 發行版,我可以以非 root 使用者身份製作完整的磁碟映像文件,但有一個例外——安裝引導載入程序。我正在使用 syslinux(實際上是 extlinux),要安裝它,我必須環回安裝引導分區,這需要 root/sudo 權限。這些命令是從一個 makefile 執行的,變數名應該清楚地表明用什麼來替換它們。
sudo losetup -o $(BOOT_FS_PARTITION_OFFSET) $(LOOP_DEVICE) $(IMAGE_FILE_NAME) sudo mount $(LOOP_DEVICE) $(LOOP_MOUNT_POINT) sudo $(EXTLINUX) -S $(DISK_SECTORS) -H $(DISK_HEADS) -i $(LOOP_MOUNT_POINT) sudo umount $(LOOP_MOUNT_POINT) sudo losetup -d $(LOOP_DEVICE)
有沒有辦法在不需要root權限的情況下將syslinux或extlinux寫入磁碟映像文件?
這是可能的
syslinux
:syslinux ~/floppy.ima
安裝程序包含足夠的
syslinux
魔法,可以在未掛載的文件系統上執行。(事實上,它就是為此而設計的。)extlinux
不過,安裝程序希望在已掛載的文件系統上執行。幾乎可以肯定,可以將
extlinux
安裝程序拆分為複製文件的一部分(類似於 FAT 的 mtools,雖然很少見但似乎存在,儘管可以直接將它們集成genext2fs
),以及安裝引導扇區的部分(我也許可以把這個拼湊在一起)。我為 GRUB 2 做了類似的事情,它安裝在 MBR 和第一個分區之間的空間中,用於Grml;這實際上更容易做到,因為 GRUB 與 SYSLINUX 不同,它不需要太多的引導扇區。這基本上取決於您更廣泛的要求。如果以上關於 SYSLINUX 的部分對您沒有幫助,請與我聯繫,以便我們解決問題。