GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat GRUB na nový disk?

Nejsem expert na grub2 (omlouvám se), ale zkuste přidat --skip-fs-probe na váš řádek grub-install, zjistil jsem, že to brání vytvoření /boot/grub/device.map což může způsobit zavádění na výzvu grub. Myslím, že bez tohoto parametru si grub-install místo toho, aby dělal, co mu řeknete, myslí, že je chytřejší než vy a může dělat něco jiného.

Další věcí je ujistit se, že používáte správný grub-install (tj. pro grub2 a ne pro původní grub). To není problém, pokud jste uvnitř Centos, ale s SystemRecoveryCD jsou k dispozici obě verze, takže musíte použít grub2-install . Naučil jsem se tvrdě...

A jak zdůraznil @wurtel (sláva), měli byste zadat jednotku, nikoli oddíl. Grub2 se nainstaluje do sektoru 0 celé diskové jednotky a tento 'stub' je to, co se spouští při bootování, ale potřebuje vědět, kde se na disku nachází, aby měl nainstalovat soubory pro další fázi bootování – to je to, co --root-directory parametr je pro. (Myslím.)

Čtení man grub-install a googlování vidím, že --root-directory není ve skutečnosti určen k použití pro grub2 verze 1.99++, i když podle mých zkušeností funguje. Měli byste použít --boot-directory a podívejte se na skutečný spouštěcí adresář, takže by vám to poskytlo:

grub-install /dev/sdb --skip-fs-probe --boot-directory=/media/new_drive/boot

Takto jsem přesunul instalaci Debianu sestávající ze zaváděcího oddílu /boot a kořenový oddíl / na nový disk a udělal z něj bootovatelný pomocí GNU GRUB:

Klonovat oddíly

  • Pomocí živého disku CD GParted vytvořte spouštěcí a kořenový oddíl na nové jednotce.
  • Pomocí kořenové konzoly v GParted připojte starý spouštěcí oddíl (řekněme, že je to /dev/sda1 ) a nový oddíl (/dev/sdb1 ):mount /dev/sda1 /mnt/oldBoot && mount /dev/sdb1 /mnt/newBoot
  • Zkopírujte data ze starého spouštěcího oddílu do nového:cp -afv /mnt/oldBoot /mnt/newBoot . Vysvětlení cp -afv :
    • a znamená "archive", což znamená:
      • neodkazujte odkazy
      • kopírujte rekurzivně (jako -R )
      • zachovat všechny atributy (časové razítko, vlastník, oprávnění)
    • f :vynutit, pokud existující cílový soubor nelze otevřít, odeberte jej a zkuste to znovu
    • v :podrobný, vysvětlete, co se dělá
  • Tím se na vaší konzoli vygeneruje výstup, který vám ukáže, který soubor je aktuálně zkopírován a zda cp dělá pokrok
  • Připojte a zkopírujte soubory ze starého kořenového oddílu do nového:
    • Pro bezpečnost:umount /mnt/oldBoot && umount /mnt/newBoot
    • Připojte starý a nový kořenový oddíl (za předpokladu, že je /dev/sda2 a /dev/sdb2 ):mount /dev/sda2 /mnt/oldRoot && mount /dev/sdb2 /mnt/newRoot
    • Zkopírujte data ze starého kořenového oddílu do nového kořenového oddílu:cp -afv /mnt/oldRoot /mnt/newRoot
  • Upravte tabulku souborového systému, která definuje, které oddíly jsou připojeny při spouštění (použiji k tomu Vim):
    • vi /etc/fstab

    • Všimnete si, že zde jsou odkazy na vaše staré oddíly. Místo toho použijte UUID nových oddílů

    • Všechny UUID můžete dočasně vložit do fstab pro snazší kopírování a vkládání pomocí :r !blkid

    • Použijte UUID vašich nových oddílů ke změně položek ve fstab. Měly by vypadat nějak takto:

       `# <file system> <mount point> <type> <options> <dump> <pass>
       # Root partition
       UUID=76fd1ffd-fb96-4ab4-be1a-42f8e9223983 / ext4 errors=remount-ro 0 1
       # Boot partition
       UUID=e560e29e-8752-4b83-b1ee-4b86c0009f0b /boot ext2 defaults 0 2`
      
      • Odeberte výstup blkid z fstab, který jste vložili dříve pomocí :r !blkid

Nainstalujte GRUB

  • Připojte virtuální souborové systémy živého CD GParted:

    mount --bind /dev /mnt/newRoot/dev mount --bind /proc /mnt/newRoot/proc mount --bind /sys /mnt/newRoot/sys

  • Zpřístupněte nástroje GRUB z živého CD GParted kořenovému oddílu:mount --bind /usr/ /mnt/newRoot/usr

  • Připojte zaváděcí oddíl na kořenový oddíl, protože GRUB uloží svou konfiguraci do /boot :mount /dev/sdb1 /mnt/newRoot/boot

  • Použijte chroot /mnt/newRoot aby se nový kořenový oddíl dočasně stal kořenem souborového systému

  • Vytvořte konfigurační soubor GRUB na /boot/grub/grub.cfg pomocí update-grub2

  • Nainstalujte GRUB na nový disk:grub-install /dev/sdb . Zde nesmíte zadávat číslo oddílu

  • Návrat do souborového systému živého CD GParted:exit

  • Odpojit oddíly:umount /mnt/newRoot/*

  • Vypnutí stroje

  • Pokud máte připojeno více jednotek, ujistěte se, že novější disk je v pořadí spouštění první

  • Spusťte stroj

Tyto pokyny jsou inspirovány pokyny z webu oaktreepeak.com.

Případně můžete zkusit Clonezillu, abyste dosáhli stejného.


Linux
  1. Jak nainstalovat externí pevný disk?

  2. Jak nainstalovat OpenVZ na Debian 9

  3. Jak vytvořím nové oddíly a naformátuji pevný disk na části?

  1. Jak vyměnit pevný disk v systému Linux

  2. Jak připojit nový oddíl na red hat linux

  3. Jak připojit souborový systém v prostředí pouze pro čtení?

  1. Jak rozdělit a naformátovat disk v systému Linux

  2. Jak připojit oddíl NTFS v Linuxu

  3. Jak připojit USB disk na Kali Linux