Temel çalışma sistemi detayları:
Bir sunucu kurmak için Ubuntu 12.04 sunucu CD'sini kullandım.
4 diskim var. Tüm disklerde ben benzer aşağıdakileri yaptım bu howto :
- 2GB takas bölümü oluşturdu
- 256 GB / önyükleme bölümü oluşturdu
- 64 GB RAID10 bölümü oluşturdu (root için)
- alanın geri kalanını alan büyük bir RAID10 bölümü oluşturdu
Önyüklemeyi ext3 olarak biçimlendirdim. Kökte ve büyük bölümlerde RAID10 kurdum. Kök bir ext4'ü biçimlendirdim. Büyük olanda mantıksal bir birim oluşturdum ve ext4'ü biçimlendirdim.
Ortaya çıkan sistem iyi çalışıyor ve iyi çalışıyor.
Sorun ayrıntıları:
Sonra bir başarısızlık prosedürü belgelemeye karar verdim. İlk adım olarak grub'u tekrar kuracağım.
# grub-install /dev/sda
warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
error: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
# grub-install /dev/sdb
warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
error: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Bu yüzden başarısız gibi görünüyor, ama aynı zamanda vazgeçmiş ve değişiklik yapmamış gibi görünüyor. Bu yüzden yeniden başlattım. Önyükleme başarısız oldu. Sadece 4 satır aşağıya yanıp sönen bir imleç ile siyah bir ekranla asılı kalır. "Shift" tuşunu basılı tutarak önyükleme yaparsam, imlecin soluna "GRUB" kelimesini alıyorum, ancak etkileşimli istem yok.
Bu noktada, bu raporu oluşturmak için önyükleme-onarım-diskini kullandım: http://paste.ubuntu.com/966531/
Yukarıdaki raporda, önyükleyicinin core.img için doğru sektörü işaret etmediğini unutmayın. (sda sanal cd'dir; sdb önyükleme diskidir; sdc sdb'nin bir aynasıdır, ancak önyükleme yansıtılmaz, sadece ayrı bir ilgisiz bölüm vardır ve biçimlendirilmiş ext3; sdd ve sde önyükleme için alan var, ancak biçimlendirilmemiş)
Sonra Ubuntu sunucu CD'sinden önyükleme yaptım, kurtarma sistemini başlattım ve hatasız tamamlanan aşağıdaki komutları verdim (burada sda sanal CD'dir ve b, c, d, e a, b, c olan disklerdir , önceki grub komutlarında d):
# parted /dev/sdb set 2 bios_grub on
# parted /dev/sdc set 2 bios_grub on
# grub-install /dev/sdb
# grub-install /dev/sdc
Bu noktada, bu raporu oluşturmak için önyükleme-onarım-diskini kullandım: http://paste.ubuntu.com/966561/
Yukarıdaki raporda, core.img ile ilgili sorunun ortadan kalktığını unutmayın. Doğru sektöre işaret ediyor gibi görünüyor.
Şimdi önyükleme yapmaya çalışırsam grub istemi alırım. Eğer "set" komutunu çalıştırırsam, kökün bulunduğunu ve ayarlandığını görürüm. Eğer "ls /" çalıştırırsam vmlinuz çekirdek dosyası da dahil olmak üzere raid biriminden kök dizinimi görüyorum. "Ls / vmlinuz" yazarsam "hata: dosya bulunamadı" yazıyor. Çekirdeği yüklemeyi denemek için "linux" komutunu kullanırsam aynı hatayı söylüyor. "Ls -l /" kullanırsam vmlinuz dosyası listelenmez.
Takip etmek istediğinizde aşırı ayrıntılı detaylar:
Ben de /boot/grub/grub.cfg olduğunu fark ettim, bu yüzden koştum
# grub-mkconfig -o /boot/grub/grub.cfg
Ancak sorun devam ediyor.
"Gptsync" aracını kullanırsam, bu davranışta bir değişiklik olmaz.
Önyükleme-onarım-diski sistemi onarmaz, çünkü EFI özellikli bir bios ile önyükleme yapmamı istiyor. Kısaca buna baktım, ama bunun nasıl çalıştığını bilmiyorum. Önyükleme seçeneklerimde bir UEFI kabuğu buldum, ancak bunun hakkında hiçbir şey bilmiyorum ve oradan başlatmayı nasıl değiştireceğinizi göremiyorum (örneğin, CD'yi o EFI kabuğundan önyüklemek için).
Bu sayfayı da okudum , ancak Ubuntu "grub" komutuyla gelmiyor, bu yüzden tam olarak takip edemiyorum. Bu komutu yükleyebilirim, ancak Ubuntu yükleyicisinin farklı bir kuruluma sahip olmak yerine onu nasıl kurmayı başardığını merak ediyorum. Blok listeleri kullandı mı?
Burada önyükleme çıktısı, önyükleme-onarım-diskinde önyükleme yapılırken (burada sdb ilk sabit disk, diskten önyüklendiğinde sda ve 2. macun bağlantısında "bios_grub" olarak değişir):
Model: ATA Hitachi HUA72303 (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 2000MB 2000MB linux-swap(v1) swap1
2 2000MB 2256MB 256MB ext3 boot1 boot (this says bios_grub in 2nd link)
3 2256MB 66.3GB 64.0GB root1 raid
4 66.3GB 3001GB 2934GB data1 raid
Karşılaştırma için ilgisiz bir süper eski sanal makine ( önyükleme-onarım-diski bilmeyen herkes için ): http://paste.ubuntu.com/966799/
Yukarıdaki grub-mkconfig çalıştırdıktan ve ayrıca "bios_grub" ayarını "boot" olarak ayarladıktan sonra, sorunlu sistemden en son yapıştırıcıdır. http://paste.ubuntu.com/966808/
İkisini karşılaştırdığımızda, bu ilginç görünüyor:
sdb2: __________________________________________________________________________
File system:
Boot sector type: Grub2's core.img
Boot sector info:
Mounting failed: mount: unknown filesystem type ''
md/bcserver8:0: ________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 12.04 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img
Baskının önyükleme dosyalarına sahip olduğu ve sdb2 biçimlendirilmemiş gibi görünüyor. (buna rağmen, sistem grub-install çalıştırmadan önce önyükleme yaptı). Kurtarma CD'sinden "mount -t ext3 / dev / sdb2 / boot" başarısız olur. Ancak grubun 2. bölümü açıkça kullandığından (parted komutundaki bios_grub ayarını yapan 2) açık olduğu için, bunun işleri karıştırması mantıklıdır.
Yani böyle bir şey yaptım:
# mkfs.ext3 -L boot1 /dev/sdb2
# mv boot boot_on_root
# mkdir boot
# mount /dev/sdb2 boot
# rsync -avHP boot_on_root/ boot/
# parted /dev/sdb set 2 bios_grub on
# parted /dev/sdc set 2 bios_grub on
# grub-install /dev/sdb
# grub-install /dev/sdc
Sonra yeniden önyükleme ve tekrar siyah ekran var, istem yok. http://paste.ubuntu.com/966848/
Bu noktada, benim tahminim bios_grub ayarlandığında, grubun MBR'ye değil, ext3'teki ext3 dosya sistemine değil, bölümün kendisinde, EFI gibi sanki ... orada ext3 dosya sistemi. EFI hakkındaki kısa okumamdan, EFI ilk bölümün önyükleme olduğunu varsayıyor gibi geliyordu, ama benim durumumda ilk takas ve aynı zamanda sökülemez bir şey yerine FAT olmalı ... bu yüzden çok az / hayır yapıyor bir ipucu olmadan hala tamamen kayboldum. [EDIT: şimdi bir ipucum var ... güncelleme için biraz aşağı atla]
Ve şimdi önyükleme-onarım-diskinde onarım'ı tıklattığımda başka bir şey soruyor. En son hata pencerenin altında gizlendi ve görmek için diğerini sürüklemek zorunda kaldı. Bu sefer ana pencere gitti ve yeni pencere şöyle diyor:
GPT detected. You may want to retry after creating a
BIOS-Boot partition (>1Mo, flag). Do you want to continue?
Evet'i tıkladım ve başarıyla tamir edildiğini ve başka bir macun oluşturduğunu söyledi: http://paste.ubuntu.com/966862/
Ama hala yanıp sönen imleci olan siyah bir ekranım var.
Şimdi benim teorim, önyükleme daha önce 0-63 sektörlerde olurdu sadece grub kodu olan yağ olmayan bir EFI şey tarafından üzerine yazılmıştır. Neyse ki bu sayfada çok açık bir ifadeyle karşılaştım, bu da muhtemelen tüm bunların ne anlama geldiğini anlamamı tamamladı. Ve sonra bunu bulduktan sonra, Jeremy, eğer doğruysa, bunun eksik anahtar kavram olduğunu doğrulayan bir cevap gönderdi. http://blog.psych0tik.net/2011/08/grub-embedding-blocklists-and-bios_grub-partitions/
Sorular:
Ne oluyor? Grub neden önyükleme yapamıyor? Neden "dosya bulunamadı" yazıyor?
Grub neden ayrıldığım (Ubuntu yükleyicisi tarafından ayarlanmayan) ayarladığım bu ayar olmadan yüklemek istemiyor? Kurmak için gereken tek şey, köküm RAID'de ve bölüm tablosu GPT olduğundan, LVM veya yazılım RAID'de olmayan ayrı bir / önyükleme olduğunu düşündüm.
Ubuntu CD yükleyicisi bu sorun olmadan ve bios_grub ayarı olmadan nasıl kurulur?
Ayrıca EFI kullanmayı da düşünürdüm. Bu iyi bir fikirse ve bunu kurmanın standart bir yolu varsa, her zaman yeni şeyler öğrenmek için hazırım.
Tüm sorularıma cevap vermeden bile beni mutlu edecek en hızlı cevap, önyükleyiciyi yükleme CD'sinde olduğu gibi düzeltmek için kurtarma CD'sinden çalıştırabileceğim bir dizi komut olacaktır. CD yerine önyüklemeli sistemle çalıştırabilirsem çok güzel olurdu.