it-swarm.asia

Grub'un bir cihaza kurulu olup olmadığını nasıl anlarım?

Grub'un bir diske kurulduğunu ve hangi ayarlara sahip olduğunu (kök parametresi için ne olduğunu) nasıl anlayabilirim?

Her iki diskteki grubun uygun kök değerine sahip gruba sahip olduğundan emin olmak için yazılım RAID1 dizilerinde birçok diski kontrol etmem gerekiyor.

39
DrStalker

GÜNCELLEME:

Bu cevap 2009'dan alınmıştır ve grub2 mirası için geçerlidir.

Bir MBR'de GRUB öğesini tanımlamak için file kullanabilirsiniz.

# file -s /dev/sda
/dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3
, stage2 address 0x2000, stage2 segment 0x200; partition 1:
ID=0xfd, starthead 1, startsector 63, 1044162 sectors; partition
2: ID=0x82, starthead 0, startsector 1044225, 1028160 sectors;
partition 3: ID=0xfd, starthead 0, startsector 2072385,
1951447680 sectors, code offset 0x48

root= paramater MBR'de saklanmadı, bu GRUB'un menu.lst dosya bir dosya sisteminde saklanır (genellikle kök fs'nin/boot/grub dizininde veya/boot dosya sisteminin grub dizininde - ancak her zaman değil, her yerde olabilir).

Yukarıdaki dosyanın çıktısını ayrıştırmanız, hangi diskin/bölümün menu.lst dosyası açık, bağla, oku ve ayrıştır. Hangi grub menü girişinin varsayılan olduğunu bulmak için grub/varsayılan dosyada da okumak istersiniz, çünkü muhtemelen en çok ilgilendiğiniz root = parametresine sahip olanıdır.

28
cas

Alternatif Yöntem

file -s Ubuntu Lucid'de benim için çalışmadı çünkü dosya komutumun sihirli dosyaları güncel değil. Sihirli dosyalarınız GRUB değişikliklere yetişmediyse bunu yapmanın başka bir yolu, cihazın ilk 512 baytını dd komutunu kullanarak şu şekilde incelemektir:

[email protected]:~$ Sudo dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
 Error

Bu, dd komutunun çıkışını strings komutu aracılığıyla gönderir, böylece yazdırılamayan karakterleri çıkarır (aktarım istatistikleri /dev/null).

GRUB hata ile karşılaştığında görüntülenecek herhangi bir mesaj görürseniz grub kurulu demektir.

Bu şifre korumalı gönderiyi cevapladığı için ubuntuforums.org'da louib'e şapka ipucu: http://ubuntuforums.org/showthread.php?t=363372

Merak için bu file -s:

[email protected]:~$ Sudo file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 20
48, 337211392 sectors; partition 2: ID=0x5, starthead 254, startsector 337215486, 1434214
6 sectors, code offset 0x63

Burada özel olarak GRUB) hakkında hiçbir şey yok.

53
benrifkah

Kullanabilirsiniz grub-emu Makinenin bir sonraki yeniden başlatıldığında grubun göstereceği menüyü görmek için.

$ Sudo apt-get install grub-emu
$ Sudo grub-emu

Masaüstü makinemde menü beklendiği gibi görüntüleniyordu, ancak aslında bir çekirdek önyükleme yapsaydım "böyle bir aygıt yok" hatası aldım. Bunun beklenen davranış olduğunu düşünüyorum.

DigitalOcean VPS'imde sunucu menüsünde hiçbir giriş görüntülenmedi, ancak sunucu gerçekten iyi bir şekilde yeniden başlattı. (Bu 2013 VPS'dir, bu nedenle kilometreniz değişebilir.)

grub-emu:

  • X-pencerelerinde grub ile etkileşim kurmak istiyorsanız, klavye odağınızın terminalde olması gerekir grub-emu'yu çalıştırdınız, açılan pencerede değil.
  • Emülatörden c tuşuna basıp exit yazarak çıkabilirsiniz.
  • Çıktıktan sonra terminal öykünücünüz kötü durumda olabilir (örn. Enter yeni bir satırda görüntülenmez). reset yazarak bunu düzeltin. (Endişelenmeyin, makinenizi yeniden başlatmaz. Sadece terminalinizi temizler.)
7
joeytwiddle