Debian / Grub2: Kök bölme yeni sürücüye mi taşınıyor?


30

Kök bölümünün yeni bir sürücüye nasıl taşınacağı ve grub2'yi bu sürücüde önyüklemek üzere kurması konusunda önerisi olan var mı? Grub-mkconfig'de ne yapmak istediğimi öğretme konusunda hiç şansım yok gibi görünüyor (örn. Chroot'int, yeni root'umda sadece tüm senaryoları karıştırıyor).

Arkaplan Başsız düşük güçte bir NAS üzerinde Debian Squeeze kullanıyorum. Şu anki kurulumum /açık sda0ve /bootaçık sde0(bir CF kart): Ayrı bir ihtiyacım vardı /bootçünkü sd[a-d]gecikmeli bir toplama yapmam gerekiyor. Şimdi olarak kullanım için eski 2.5" IDE diski buldum /dahil /bootbana bütün büyük diskleri aşağı dönmeye izin vermek.

Ne denedim Temel olarak gittim

mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot

Sonra denedim

chroot /mnt/newroot
update-grub

Ancak bu grubun kök takılıp takılmadığını sorması ile başarısız oldu. Sonra /mnt/newroot/grub/grub.cfgçekirdek görüntüsünü bulmak için ayarlamaya yarım yürekli bir girişim yaptım sdf5, ardından a grub-install --root-directory=/mnt/newroot /dev/sdf. Ama bu sadece önyükleme yapmaya çalıştığımda beni bir kurtarma grubuna indirdi sdf.

Yedekleme planım sadece yeniden yüklemektir, bu yüzden bonus bir soru (bunun için onay işareti yok): lvm2 ve mdadm config'umu bulmak için ne yapmalıyım? Hepsi dosya sistemlerinde mi saklanıyor (ve otomatik olarak bulunacak mı), yoksa onu kendim mi almam gerekiyor?

Çözüm (Maciej Piechotka sayesinde): Maciej'in işaret ettiği gibi, tüm grub araçlarının çalışması için uygun bir chroot kullanmam gerekiyor. Başvuru için, bu nasıl yaptım:

janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

Tüm dosyalar şimdi kopyalandı ( kopya stratejilerinin tartışılması için buraya bakın ). etc/fstabYeni kökü işaret etmek için yeni düzelt :

janus@nasguld:/mnt/newroot$ diff -u etc/fstab.old  etc/fstab
    -UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 /     ext3 errors=remount-ro         0 1
    -UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults                  0 2
    +UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 /     ext3 noatime,errors=remount-ro 0 1

Son olarak, montaj dev, sysve procyeni kökü ve chroot:

janus@nasguld:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
janus@nasguld:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
janus@nasguld:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
janus@nasguld:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
janus@nasguld:/mnt/newroot$ sudo chroot .

Şimdi tam olarak göründüğü gibi gelecekteki kökünden bahsediyoruz. Maciej’e göre, sadece aramanın uygun olması gerekiyor grub-install, ancak bootloader’ı kurmadan önce update-grubüretilenlere bir göz atın /boot/grub/grub.cfg. Otomatik olarak güncelleneceğinden emin değilim?

root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb

İçeriğini /etc/default/grubve tam transkript deftere nakledin update-grub.
— Gilles 'SO- kötülük' dur '

(solüsyonun eklenmesinden sonra düşünceler): Aslında sorun Güncellenmiş olmasaydı olmasıydı olabilir /etc/fstabde chroot(bu tutarlı olurdu update-grub"monte edilmez \" şikayet). Bunu tekrar yapsaydım, ilk önce özel dosya sistemlerini chroot'a monte etmeden uğraşmazdım.
— Janus

sadece bir not: yeniden başlatmadan önce / mnt / newroot'u çıkarmayı unutmayın!
— Giacomo Tesio

İşte / bölümünü hdd üzerinde tutarken, kök bölümünüzü / yeni nvme sürücüsüne nasıl taşıyacağınıza dair talimatlar. lucasmanual.com/blog/…
— Lucas

Yanıtlar:


20

Temel dosya sistemlerini kurun ve chrooting yaparken dosyaları kopyalayın / değiştirin:

  • / dev ( mount -o bind /dev/ /path/to/chroot/dev)
  • / proc ( mount -t proc none /path/to/chroot/proc)
  • / sys ( mount -t sysfs none /path/to/chroot/sys)

Grub 2'yi kemerde ve Gentoo'da defalarca kurarken benim için çalışan IIRC. Sonra chroot /path/to/chrootkomutundan sonra basitçe:

grub-install /dev/<boot_disk>

Lvm2'den itibaren (ve ben madma'ya inanıyorum ama ben kullanmadım) konfigürasyon diskte saklanıyor. Cihazları keşfetmek için nelerin okunması gerektiği konusunda bir yapılandırma var. Aygıtlarınızın standart konumlarda ( /dev/sd*veya /dev/hd*) olduğunu varsayarsak sorun olmamalıdır.


PS. Hatalı gidebileceği birkaç yer olduğu için basit canlı cp sistemine güvenmem:

  • Değiştirmeyi /etc/fstabve diğer faydalı dosyaları unuttum
  • Erişim sırasında dosyalar değişti
  • Başa çıkma çöpleri ( /tmpvb.)

Teşekkürler. Yani temelde, özensiz bir chroot yaptığımı söylüyorsunuz :) Uygun bir chroot ile deneyeceğim. cp -axBu eski şekle göre iyi olmalı (belki tek kullanıcı çalışma seviyesine düştükten sonra): tldp.org/HOWTO/Hard-Disk-Upgrade/copy.html
— Janus

Bir cazibe çalıştı! Yardımın için çok teşekkür ederim.
— Janus

1
@ Joanus: Live distro'dan veri kopyalamayı güvenli tarafta istiyorum. Çalıştığıma memnun oldum.
— Maciej Piechotka

Daha update-grubönce yapmak zorundaydım install-grub.
— Aryeh Leib Taurog

3

grub'u canlı dağıtımdan chrooting yapmadan kurabilirsiniz:

grub-install /dev/hda --root-directory=/mnt/guest/

Teşekkürler. Bunun burada çalışacağından emin değilim: Anladığım kadarıyla grub-installsadece grub imaj dosyalarını günceller ve MBR'yi yazar: Özellikle, grub.cfggüncellenmez. Yukarıda yorum yaptığım gibi, özel direklerin monte edilmesi fazla zor olabilir, ancak hala chroot'un grub.cfgbasit bir şekilde güncelleme yolu olduğunu düşünüyorum.
— Janus

Evet, bu benim için de işe yaramadı. Sen almak zorunda update-grubişe ve bir yok --root-directoryhiçbir şey ya?
— Mitar

0

BTW, gruba önyükleme sektöründe yazmak istemediğiniz bir bölüm (pencereler gibi) ekliyorsanız, ancak bilgisayarınız önyüklenirken grubun bunu bilmek istemesini istiyorsanız, bölümleri yeniden tarayabilir ve oluşturabilirsiniz. Bir terminal oturumunda aşağıdaki şekilde grub_mkconfig komutunu kullanarak yeni bir grub.cfg dosyası

cd / önyükleme / grub

sudo cp grub.cfg ./grub.cfg.old

sudo grub_mkconfig -o ./grub.cfg

Şimdi mevcut linux bölümünüzü başlattığınızda (bu onu önyükleme grubuna sahipti) şimdi diğer bölüm hakkında bilgi edinecek.

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.