Syslinux / extlinux'u bir disk imaj dosyasına kök ayrıcalıkları gerektirmeden nasıl yüklerim


13

Evde yetiştirilen bir Linux dağıtımı oluşturdum ve önyükleme yükleyicisini yükleyerek tek bir istisna dışında tüm disk imaj dosyasını root olmayan bir kullanıcı olarak yapabilirim. Ben syslinux (aslında extlinux) kullanıyorum ve yüklemek için kök / sudo ayrıcalıkları gerektiren önyükleme bölümü geri döngü var. Komutlar bir makefile'dan çalıştırılır ve değişken adları bunların yerine neyin değiştirileceğini açıkça belirtmelidir.

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)

Disk imge dosyasına kök ayrıcalıkları gerektirmeden syslinux veya extlinux yazmanın bir yolu var mı?


Tüm bu komutları root olmadan yapmanın mümkün olup olmadığını merak ediyor musunuz ? Yoksa sadece extlinux komutu mu?
BenjiWiebe

@BenjiWiebe Başka bir yol varsa, hangi komutlar gerekiyorsa, ancak anladığım kadarıyla extlinux'u çalıştırmak için takılı bir dosya sistemine ihtiyacınız var ve extlinux'un bu şekilde yapıldığında kök ayrıcalıklarıyla çalışması gerekiyor.

Yanıtlar:


8

Bu aşağıdakiler için mümkündür syslinux:

syslinux ~/floppy.ima

syslinuxYükleyici bir Monte edilmemiş dosya sistemi üzerinde çalışmak üzere yeterli büyü içermektedir. (Aslında, bunu yapmak için tasarlanmıştır.) extlinuxYükleyici, bağlı bir dosya sisteminde çalıştırılmasını bekler.

Kapalı bölmek neredeyse kesinlikle mümkündür extlinuxbir parçası haline yükleyici kopyalayan dosyaları ( FAT için mtools gibi bir şey olduğunu, nadir fakat var görünmüyor biri sadece doğrudan entegre olabilir, ancak genext2fs) ve BootSector yükleyen bir kısmı ( Bunu birlikte kaldırmam mümkün olabilir).

MBR ve ilk bölüm arasındaki boşluğa Grml için yüklenen GRUB 2 için böyle bir şey yaptım ; Bunu yapmak daha kolaydı, çünkü GRUB, SYSLINUX'tan farklı olarak, çiziciden fazla bir şey gerektirmiyor. Temel olarak daha geniş gereksinimlerinize bağlıdır. SYSLINUX ile ilgili yukarıdaki bölüm size yardımcı olmazsa, benimle iletişime geçin, böylece bir şey çözebiliriz.


Bu bilgi için teşekkürler. Ben genext2fs kullanıyorum, bu yüzden öneriniz en iyi seçenek gibi geliyor. Sadece extlinux kodunu MBR'ye yerleştirmek ve dosyaları fs'ye kopyalamak mı yoksa dosyaların fs içindeki belirli bloklara gitmesi mi gerekiyor?

Henüz EXTLINUX'a ayrıntılı bir şekilde bakmadım (bunu yapacak ve sonra bu yorumu sileceğim, ancak bana biraz zaman vereceğim) ancak SYSLINUX, LILO, GRUB ve diğer önyükleyiciler için, genellikle kodun PBR'ye kopyalanması için (bölüm önyükleme kaydı, vulgo önyükleyicisi, MBR değil) ve daha sonra kod, dosyanın sabit kodlu konumuna sahip olacak şekilde düzenlenir (bu nedenle bir yükleyici ihtiyacı). Senin için bir şeyler toparlayacağım.
mirabilos

@Patrick Bu konuda tartışmaya ihtiyacım var, bir sohbet
mirabilos

Beni grubunuzu kullanarak uygulamanıza yönlendirebilir misiniz? Şu anda var grub-install, ancak yine de önyükleme bölümünün monte edilmesini gerektirir.
copy

@copy bu o (sadece bir ISO 9660 dosya sistemi oluşturmak gerekiyor) GRML bile daha esnek görüntü nesil vardır OpenADK, kullanılır nasıl. Belki bu yardımcı olur? Değilse, doğrudan benimle iletişime geçin. - Edit: oh bekle, hayýr, core.imgkuşak ... lemme see… arama için buraya bak grub-mkimage. Bu, hedef ortama büyük ölçüde bağlıdır (temel olarak, diğerlerini dinamik olarak yüklemek için hangi modüllere ihtiyaç vardır; GRUB 1 çok daha kolaydı).
mirabilos

5

/etc/fstabŞöyle bir şey söyleyerek bir satır eklerseniz :

/dev/loop0      /mnt                                    ext4    defaults,user   0 0

daha sonra /dev/loop0normal bir kullanıcı olarak bağlayabilir / bağlantısını kesebilirsiniz .

Eğer yaparsanız chown youruser:youruser <MOUNTPOINT> <LOOPDEVICE>o zaman extlinux, losetup, mkfs, vb yapılabilir youruser.


Bunun genel bir oluşturma işleminin bir parçası olmasını istiyorum ve görüntü dosyasının ve bağlama noktasının konumu kullanıcıdan kullanıcıya değişebilir. Her kullanıcı için fstab düzenlemeyi gerektirmemeyi tercih ederim.

@Patrick fstab'ı düzenlemek küreseldir.
BenjiWiebe

Ama losetup sadece kök olarak kalır, değil mi?
bmargulies

@bmargulies Döngü cihazı chowned veya chmod'ed edildiğinde değil, kullanıcının ona erişebilmesi için değil ... ya da en azından Fedora'da kullanıcıyı diskgruba ekleyebilirsiniz . (Veya bir loopgrup oluşturun ve kullanın ...)
BenjiWiebe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.