Saya telah membangun distribusi Linux buatan sendiri, dan saya dapat membuat file image disk lengkap sebagai pengguna non-root dengan satu pengecualian - menginstal boot loader. Saya menggunakan syslinux (sebenarnya extlinux), dan untuk menginstalnya saya harus me-mount kembali partisi boot, yang memerlukan hak root / sudo. Perintah dijalankan dari makefile, dan nama variabel harus dengan jelas menunjukkan apa yang harus diganti.
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)
Apakah ada cara untuk menulis syslinux atau extlinux ke file gambar disk tanpa memerlukan hak akses root?
Jawaban:
Ini dimungkinkan untuk
syslinux
:The
syslinux
installer mengandung cukup ajaib untuk dijalankan pada filesystem unmount. (Bahkan, ia dirancang untuk melakukan itu.)extlinux
Installer berharap untuk dijalankan pada sistem file yang sudah terpasang.Hampir dapat dipastikan untuk memisahkan
extlinux
installer menjadi bagian yang menyalin file ( sesuatu seperti mtools untuk FAT , yang jarang tetapi tampaknya ada , meskipun orang hanya dapat mengintegrasikannya secara langsung dengangenext2fs
), dan bagian yang menginstal bootsector ( Saya mungkin bisa memperbaiki ini bersama).Saya melakukan sesuatu seperti ini untuk GRUB 2, yang menginstal ke dalam ruang antara MBR dan partisi pertama, untuk Grml ; ini sebenarnya lebih mudah dilakukan karena GRUB, tidak seperti SYSLINUX, tidak memerlukan banyak dari bootsector. Ini pada dasarnya tergantung pada kebutuhan Anda yang lebih luas. Jika bagian di atas tentang SYSLINUX tidak membantu Anda, hubungi saya, sehingga kami dapat menyelesaikan sesuatu.
sumber
grub-install
, tetapi masih membutuhkan partisi boot untuk dipasang.core.img
generasi ... biar lihat ... periksa di sini untukgrub-mkimage
panggilan. Ini sangat tergantung pada lingkungan target (pada dasarnya, modul mana yang diperlukan untuk memuat yang lain secara dinamis; GRUB 1 jauh lebih mudah).Jika Anda menambahkan baris dalam
/etc/fstab
mengatakan sesuatu seperti:Anda kemudian dapat melakukan mount / unmount
/dev/loop0
sebagai pengguna biasa.Dan jika Anda melakukannya
chown youruser:youruser <MOUNTPOINT> <LOOPDEVICE>
makaextlinux
,losetup
,mkfs
, dll bisa dilakukan sebagaiyouruser
.sumber
disk
grup. (Atau buatloop
grup dan gunakan itu ...)