Grub'u bir USB sabit diskten linux çekirdeğini önyüklemek için nasıl yapılandırmalıyım?


17

Büyük bir pendrive olarak kullandığım harici bir kasada bir dizüstü bilgisayar sabit diskim var. Ek bir bükülme için, üzerine Linux yükledim, böylece herhangi bir makineyi tercih ettiğim dağıtımla önyükleyebilirim (örneğin veri kurtarma veya b0rked bir sistemi onarma veya önceden yüklenmiş Windows'u yok etmeden ödünç alınmış bir dizüstü bilgisayar kullanma). Sorun, donanım yapılandırmasına bağlı olarak, USB sabit sürücünün farklı yollar altında görülebilmesidir. Grub yapılandırması için sadece (hda0,0)grubun başlatıldığı cihaza göre kullanıyorum. İçinde UUID girişlerim var /etc/fstab. Ayrıca belirtmek rootwaito cihaz monte denemeden önce yerleşmek USB alt sistem için bekler, böylece çekirdek parametrelerinde.

Çekirdeğe ne olarak geçmeliyim root=? Şu anda pendrive'dan bir kez önyükleme yapın /dev/sdX, çekirdek tarafından USB sürücüsüne hangi aygıtın atandığını görmek için hata ayıklama iletilerini kontrol edin , ardından grub yapılandırmasını yeniden başlatın ve düzenleyin. Bilgisayarda Boot from USB hard driveBIOS'u etkinleştirmenin ve dahili sabit sürücülerden daha yüksek önceliğe ayarlamanın yanı sıra hiçbir şeyi değiştiremiyorum .

Kök aygıt yolunda UUID desteği içeren çeşitli initrd üreten komut dosyaları vardır, maalesef Gentoo yerli olanı (genkernel) desteklemiyor rootwaitve başkalarını kullanmaya çalışırken şansım yoktu.

Önyükleme işlemi şu şekildedir ( Windows'da oldukça benzer ):

  1. BIOS, önyükleme aygıtını seçer ve MBR'sini (grub-1 aşaması olur) yükler.
  2. Grub o kadar belirledi cihazdan yükler 's yapılandırma ve sahne-2 dosyaları rootkullanarak, (hd0)o BIOS tarafından yüklenen edildi cihaz için.
  3. Grub yükler ve bir çekirdek başlatır (yine aynı numaralandırma, bu yüzden (hd0,0)tekrar kullanabilirsiniz ).
  4. Çekirdek tüm yerleşik cihazları başlatır ( rootwaitşimdi sihir mi yapıyor).
  5. Çekirdek, geçirildiği bölümü bağlar root(grub parametresi değil, bir çekirdek parametresidir).
  6. init.dbir şeyleri monte etmek de dahil olmak üzere kullanıcı önyükleme işlemini başlatır /etc/fstab.

Bölüm 5 bana sorun veren bölümdür.

Yanıtlar:


6

Bence cevap root=LABEL=...yaroot=UUID=...

Ama bunun sizin için işe yaramadığını belirtiyorsunuz. İnitrd'inizin eylemleriyle ilgili bir sorun olup olmadığına bakmanızı öneririm.


Bir initrd'ım yok, tüm sorun bu. genkernel "rootwait" seçeneğini desteklemez ve diğerleri Gentoo ile çalışmaz.
skolima

2

Yanılıyor olabilir ya da muhtemelen sizi yanlış anlayabilirim, ancak önyükleme aygıtı seçimi, önyüklediğiniz makinenin BIOS'undan yapılandırılacak bir şey değil mi?

GRUB'u önyükleyici olarak yükleyecek olan USB sürücüsünü seçme ve daha sonra GRUB menüsünden hangi dağıtımı başlatmak istediğinizi seçme meselesi olacağını düşünürdüm.


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.