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.