Yeni bir sürücüye taşıma / önyükleme ve MBR


11

İçinde iki sabit disk bulunan bir CentOS 6 sunucum var. Eski 3 TB'lık diskim bana bazı sorunlar veriyor, bu yüzden yeni bir diske geçiyorum. Benim /ve /homebölümüm bir LVM tarafından yönetildiği için, bunları yeni sürücüye taşımak kolaydı. Şimdi /bootbölümümü ve her şeyi başlatan MBR'yi hareket ettirmek istiyorum .

Ben canlı bir CD'yi kadar yüklü ve rsyncedbenim üzerinde /bootyeni sürücüde aynı boyutta bölüme bölüm. Ayrıca aşağıdaki komutlarla MBR'ımı kopyalamaya çalıştım:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

Bunu yaptıktan sonra yeniden başlattım, BIOS'uma önyükleme döngüsü sırasında eski sabit sürücüye bakmamasını ve sadece yeni sürücüye bakmamasını söyledim, ancak sonuçta yanıp sönen bir imleç vardı.

Burada bir adımı atladım mı? Yoksa eski sürücümü tamamen kaldırabilmem için işleri önyüklemek için yapmam gereken başka bir şey var mı?

EDIT: Ben rsync / boot bölümü bir sürücüden diğerine kopyalamak için bir yol olmadığını düşünüyorum başlıyor. Bu kılavuza dayanarak, bunun yerine dump komutunu kullanmayı denedim. Bu komutta eski, monte edilmemiş önyükleme bölümümü yeni, boş, takılı önyükleme bölümüme kopyaladım.

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

Yanıp sönen bir imleç daha iyi önyükleme üzerinde bir grub hatası 15 alıyorum ama bir çözüm daha yakın olup olmadığını bilmiyorum.


Neden yeni sürücüye grub-install olmasın?
frostschutz

Grub-install çalışan yorgun her zaman önyükleme ve sadece bir grub istemi sona erdi.
Cloudkiller

Yanıtlar:


3

İki sabit disk aynı boyuttaysa (veya yeni disk büyükse), neden eski diski yeni diske kopyalamıyorsunuz? yani

dd if=/dev/sda of=/dev/sdb

Şimdi, yeni sabit disk daha büyükse, bölüm boyutlarını parted veya gparted ile değiştirin. Tüm bunlar canlı bir CD / USB çubuğundan önyükleme yaptı.


Farklı boyuttadırlar. 3Tb sadece sunucu için overkill oldu, bu yüzden biraz daha fazla hız almak umuduyla 1 TB raptor aşağı taşındı. Ne olursa olsun, klonlama sorun gibi görünmüyor. En azından LVM kısmı kolayca taşındı ve önyükleme bölümünün son dökümü ile tamamen kopyalandığı anlaşılıyor. Şimdi sorunun bir şekilde grubum veya MBR ile ilgili olduğunu düşünüyorum. Bence sorun grub2 ve bunu düzeltmek için LVM'lerle nasıl etkileşime girdiğini bilmiyorum.
Cloudkiller

bit kopyası için biraz iş yapan dd'nin kullanılması, özellikle disk boyutları artık terabayt aralığında olduğunda ve daha sık olarak gerçek veri miktarı diskte 10 gb'den az olduğunda veri taşıma yapmanın eski bir yoludur; SUSE'nin temiz bir taze yüklemesi yüklü bir çok kütüphaneyle beni bir dosyaya katladığım diskte 5GB civarında çalıştırıyor ve bu tar dosyasını hareket ettirmek için 8GB bellek çubuğu kullanıyor, EFI veya MBR olsun sadece önyükleme MB.
ron

BIOS yerine EFI veya UEFI kullanabiliyorsanız ve MBR & dos önyükleme bölümü yerine GPT aracılığıyla bir EFI önyükleme bölümünüz varsa, işleri kolaylaştırır, EFI parition'ı fat32 olarak biçimlendirir ve ilgili birkaç MB dosya üzerine kopyalar; aksi takdirde MBR için nasıl çalıştığını anlamanız, yeni diske göre içindeki adresleri düzeltmeniz ve ardından BIOS'un düzgün bir şekilde erişebilmesi için yeni MBR'yi ilk sektördeki yeni diske yüklemeniz gerekir; Donanımınız EFI özellikli ise EFI çok daha iyidir
ron

ve ELILO GRUB / GRUB2'den daha iyi, gruba asla hiç kullanmadığım ve işleri zorlaştıran çok fazla şey; bir elilo.conf dosyası ve işiniz bitti! bakmak ve düzeltmek için sadece bir dosya önyükleme yapmıyorsa
ron

4

/ Boot bölümünü kopyalamak için rsync veya dump kullanmanın soruna neden olduğu ortaya çıkıyor. Yukarıdaki yanıtın cevabına dayanarak, kurtarma moduna canlı bir CD önyükledim ve aşağıdaki dd komutlarını çalıştırdım.

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

Her şeyin doğru bir şekilde kopyalandığından ve yaptığım tüm testlerle bozulmadığından emin olmak için ilk iki dd'yi tekrar çalıştırdım. Sonra önyükleme bölümünü eski sürücümden yenisine kopyalamak için üçüncü dd'yi çalıştırdım. Bundan sonra kapattım, eski sürücümü çıkardım ve CentOS'uma sorunsuz önyükleme yaptım.

Takılı bir sürücüde kopyanın düzgün çalışmamasına neden olan dökümün kullanılmasından kaynaklanan bir sorun oluşmuş olmalıdır. Ne olursa olsun, dd hile yaptı. Herkese yardımın için teşekkürler.


Bu işe yaramadığı için cehaletin mutluluğa iyi bir örnektir . MBR'deki sorunu düzeltmeniz için kurtarma CD'sinin ne yaptığını kendinize sorun. Aynı anda sistemde iki disk olması, hangisinin sda, hangisinin sdb olması ve eski diski çıkarmanız ve yeni diski çıkarmanız, bu değişip sda veya sdb olur mu?
ron

ne yaptığınıza bağlı olarak önemli olmayabilir, ancak diskleri aygıt kimliği veya UUID gibi benzersiz bir yöntemle önyüklemek veya tanımlamak genellikle daha iyidir.
ron

dd ve MBR kullanmak, elektronik yakıt enjeksiyonu (EFI) ile elektronik ateşlemeden ziyade motorda noktalar ve kondansatör kullanmak gibidir ... pun amaçlı ... ve tam olarak anlaşılmadığı için EFI kullanmamak.
ron

3

DD yerine yeni bir birim oluşturdum. Diğer adımlar, ancak sorunları kopyalamak yerine düzeltebilir. Bozulmuş çok küçük / önyükleme vardı. Ayrıca grub2 ile cento7 kullanıyordum. Bu yüzden talimatlarım psusi'nin önerdiği gibi bazı ayarlamalar veya grub2'ye yükseltmeyi gerektiriyordu. Değişiklikleri not etmeye çalıştım.

Not: "/ dev / sdx" kullandığınızda, "sdx" / disk olmasını istediğiniz disk / birim adı ne olursa olsun bilmek gerektiğini varsayıyorum.

  • 83 tipi (normal linux kısmı) ile Bölümlemek için fdisk (cfdisk değil) kullanın ve önyüklenebilir olarak işaretleyin.
    • Fdisk'in nedeni: cfdisk, bölümü çok erken başlatır ve önyükleme yükleyicisine yer kalmaz. Unutmayın, önyükleme yükleyicisinin bölümden önce sığması gerekir.
  • Bölümleme dosya sistemi olun. Dış [234], xfs. Diğerleri ?.
  • Montaj yeri / önyükleme
  • * .İmg dosyalarını eski / boot dosyasından / boot dizinine kopyalayın… en azından saklamak istediklerinizi.
  • Ayrıca vmlinuz- * dosyalarını eski / boot over / boot üzerine kopyaladım… gerekli olup olmadığından emin değilim.
  • Grub2-install / dev / sdx komutunu çalıştırın
    • Not 1: grub (grub2 yerine) kullanıyorsanız, doğru komut grub-install / dev / sdx olduğuna inanıyorum
    • Not 2: Bu, yeni biçimlendirdiğimiz bölümden önce yüklenir, böylece / dev / sdx1'e DEĞİLDİR!
  • Grub2-mkconfig -o /boot/grub2/grub.cfg dosyasını çalıştırın
  • / Boot / boot / fstab dosyasını güncellemeyi unutmayın

referanslar: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.patriotmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso /blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2


2

Sorun, ddMBR'yi bu şekilde kopyalamak için kullanmamanızdır . Doğru şekilde güncellenmiş bir MBR elde etmek için grub'u yeni sürücüye yeniden yüklemeniz yeterlidir . MBR, dökümü geri yüklediğinizde değişen grub aşama 2 dosyasının konumunu içerir.

Ayrıca grub mirası yıllarca korunmadığından grub2'ye yükseltmelisiniz ve grub2 bir lvm / önyükleme bölümü gerektirmez.


Grub2 kullanıyorum, CentOS 6 yükleyicisinin diskime koyduğu şey bu. Ayrıca, lvm / önyükleme olmayan bölüm de CentOS tarafından sağlanan varsayılan kurulumdu. Grub2 sürücüye defalarca yeniden yüklemeye çalıştım ama işe almak beni kaçındı bir şeydi.
Cloudkiller
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.