grub.cfg içinde yanlış bir UUID nasıl düzeltebilirim?


5

Bilgisayarımda yalnızca Debian Wheezy kullanıyorum ve son zamanlarda kök bölümünü rsync ile diğerine kopyaladım, iyi çalıştığını gördüm (ayrıca dd ve ddrescue hakkında da bilgim var ama yeni bölümde kullanılamaz alan bırakıyorlar). Yeni bölüm için sudo tune2fs -U random / dev / hda9 ile yeni bir rasgele UUID oluşturdum ve ayrıca fstab / ve / home girişlerini güncelledim.

Sonra GRUB hakkında çok az şey bildiğim için, yeni işletim sistemi için araştırma yapmak üzere bir gui (GRUB Özelleştirici) kullandım ve GRUB'a bir giriş ekledim ve MBR --it bir /etc/grub.d girişi yapar ve ardından GRUB'u günceller.

Başlangıçta, GRUB listesi yeni işletim sistemini içeriyor (sda9'da) ancak ilk işletim sistemini (-sda5'ten kopyaladığım) önyükleme yapıyor.

/boot/grub/grub.cfg yeni debian işletim sistemini içeriyor ancak bu gibi görünüyor

set root='(hd0,msdos9)'  
search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556  
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d ro quiet  
initrd /boot/initrd.img-3.2.0-2-amd64

1. uuid sda9, ancak 2. uuid sda5. 2. uuid'i başlangıçta değiştirebiliyorum (E ile) ve sda9'u başlatıyor.
Sda9 GRUB listesi girişi sda9'dan kalıcı olarak önyüklenecek şekilde grub.cfg'yi nasıl düzeltebilirim?

Yanıtlar:


4

Sadece düzenlemek /boot/grub/grub.cfg/ve sda9 en ile sda5 en UUID değiştirin:

search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556  
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=64662470-0e58-4dfd-90ac-43227d773556 

Gelecekte bu tür hatalardan kaçınmak update-grub için kullanmak istediğiniz sistemden çalıştırın . Eski işletim sisteminden çalıştırırsanız, geçerli kök bölümünü alır ve önyüklemesi için grub.cfg'yi ayarlar.


ve grub.cfg dosyasını düzenlersem, bir GRUB güncellemesi yapıldığında önceki uuid'e geri dönen 2. uuid ne durur? (bileceğime göre, bunu denedim)
mozerella 10:12

@ mozerella, sda9 sisteminden veya sda5'ten güncelleme grubunu çalıştırdınız mı?
terdon

sda5, aslında
mozerella

@ mozerella, tekrar çalıştırmayı deneyin ancak sda9 işletim sistemine ön yükleme yaptığınızda.
terdon

Yeni farkettim! sda9'daki işletim sistemi kendi grub.cfg dosyasına sahiptir, bu yüzden sda9'daki işletim sisteminden güncelleme grubunu çalıştırmam gerekiyordu. Bunu belirttiğiniz için teşekkür ederim, Q'ya cevap vereyim mi?
mozerella

1

Eğer çalıştırdığınızda update-grubgelen sda5okur /boot/grub/grub.cfggelen sda9gelen kopyalandığı sda5. İlk sda5işletim sisteminiz olan ilk önyükleme . Sonra düzeltmek için bu komutları kullanın:

SourceUUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d
TargetUUID=64662470-0e58-4dfd-90ac-43227d773556
sudo mkdir /mnt/clone
sudo mount -t auto -v /dev/sda9 /mnt/clone
sudo sed -i "s/$SourceUUID/$TargetUUID/g" /mnt/clone/boot/grub/grub.cfg
sudo update-grub
sudo umount /mnt/clone -l

Bu cevabı yeni bölümleme betiğine bir Ubuntu 16.04 LTS klonuna dayandırdım .


0

/Boot/grub/menu.lst (önce bir yedek cp gerekir) kaldırmalı ve ardından güncelleme grubunu yenisini oluşturmak için evet diyecektim. Daha sonra önyüklemek için doğru bölüm UUID algıladı.

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.