GNU/Linux >> Linux Esercitazione >  >> Debian

Debian/grub2:spostare la partizione di root su una nuova unità?

Qualcuno ha un suggerimento su come spostare la partizione di root su una nuova unità e configurare grub2 per l'avvio su quell'unità? Sembra che non abbia fortuna a istruire grub-mkconfig su cosa voglio fare (ad esempio chroot'int nella mia nuova radice confonde solo tutti gli script).

Sfondo Sto eseguendo Debian Squeeze su un NAS a bassa potenza senza testa. La mia configurazione attuale è / su sda0 e /boot su sde0 (una scheda CF):avevo bisogno del /boot separato perché sd[a-d] bisogno di fare uno spin-up ritardato. Ora ho trovato un vecchio disco IDE da 2,5″ da usare come / incluso /boot per permettermi di far girare tutti i dischi grandi.

Quello che ho provato Fondamentalmente ci sono andato

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

Poi ho provato

chroot /mnt/newroot
update-grub

Ma ciò non è riuscito con grub che ha chiesto se root fosse stato montato.
Poi ho fatto un tentativo poco convinto di impostare /mnt/newroot/grub/grub.cfg per trovare l'immagine del kernel su sdf5 , seguito da un grub-install --root-directory=/mnt/newroot /dev/sdf . Ma questo mi ha appena ottenuto un prompt di salvataggio di grub quando ho provato ad avviare da sdf .

Il mio piano di backup è semplicemente reinstallare, quindi una domanda bonus (nessun segno di spunta per questo):cosa devo fare per ottenere la mia configurazione lvm2 e mdadm? È tutto memorizzato nei filesystem (e verrà rilevato automaticamente) o devo prenderlo io stesso?

Soluzione (grazie a Maciej Piechotka):Come sottolinea Maciej, ho bisogno di un chroot adeguato per far funzionare tutti gli strumenti di grub. Per riferimento, ecco come l'ho fatto:

[email protected]:/mnt/newroot$ sudo cp -ax / /mnt/newroot
[email protected]:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

Tutti i file sono ora copiati (vedi qui per una discussione sulle strategie di copia). Correggi il nuovo etc/fstab per puntare a una nuova radice:

[email protected]:/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

Infine, monta dev ,sys e proc alla nuova radice e chroot:

[email protected]:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
[email protected]:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
[email protected]:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
[email protected]:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
[email protected]:/mnt/newroot$ sudo chroot .

Ora siamo chroot alla radice futura esattamente come apparirà. Secondo Maciej, dovrebbe essere ok chiamare semplicemente grub-install , ma ho eseguito un update-grub per prima cosa dare un'occhiata al /boot/grub/grub.cfg generato prima di installare il bootloader. Non sono sicuro che verrà aggiornato automaticamente?

[email protected]:/# update-grub
[email protected]:/# grub-install /dev/sdb

Risposta accettata:

Monta i filesystem di base e copia/modifica i file durante il chroot come:

  • /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 )

IIRC che ha funzionato per me durante l'installazione di Grub 2 in arch e numerose volte su Gentoo. Quindi dopo chroot su /path/to/chroot il comando era semplicemente:

grub-install /dev/<boot_disk>

A partire da lvm2 (e credo matto ma non l'ho usato) la configurazione è memorizzata su disco. C'è una configurazione che dovrebbe essere letta per scoprire i dispositivi. Supponendo che i tuoi dispositivi si trovino in posizioni standard (/dev/sd* o /dev/hd* ) non dovrebbero esserci problemi.

Correlati:creare un file come utente e gruppo diversi?

PS. Non mi fiderei del semplice cp del sistema live in quanto ci sono diversi posti in cui può andare storto:

  • Dimenticato di modificare /etc/fstab e altri file utili
  • File modificati durante l'accesso
  • Fare fronte all'immondizia (/tmp ecc.)

Debian
  1. Rilascio di Debian 10 (Buster) – Nuove funzionalità

  2. Rilascio di Debian 8 Jessie – Cosa c'è di nuovo?

  3. Reimposta una password di root dimenticata in Debian 10 / Debian 11

  4. Debian – Spostare /var, /home in una partizione separata?

  5. Come installare GRUB su una nuova unità?

Come avviare il file ISO di Debian dal disco rigido con GRUB2

Come installare Joomla su Debian 8

Come installare osCommerce su Debian 8

Come installare Joomla su Debian 9

Come installare Textpattern su Debian 9

Novità di Debian 11 "Bullseye"