System-Installation

如何在不需要 root 權限的情況下將 syslinux/extlinux 安裝到磁碟映像文件

  • June 9, 2014

我已經建構了一個本土 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 的部分對您沒有幫助,請與我聯繫,以便我們解決問題。

引用自:https://unix.stackexchange.com/questions/136266