Come spostare partizioni di avvio e root su un'altra unità


27

Ho due unità sul mio computer che hanno la seguente configurazione:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

Sfortunatamente, l'unità 2 sembra morire, perché il tentativo di scrivere su di essa mi dà errori e il controllo delle impostazioni SMART mostra un triste stato di cose.

Ho un sacco di spazio su Drive 1, quindi quello che mi piacerebbe fare è spostare le partizioni / e / boot su di esso, rimuovere Drive 2 dal sistema, sostituire Drive 2 con una nuova unità, quindi invertire il processo.

Immagino di dover fare un po 'di aggiornamento su grub e di dover spostare alcune cose, ma sono piuttosto sconcertato su come procedere esattamente. Dato che questo è il mio computer principale, voglio stare attento a non rovinare tutto, quindi non riesco ad avviarlo.


Questo è esattamente quello che dovevo fare anch'io. Ho scritto un blog con le istruzioni complete su come spostare la partizione di root / in / home.
Lucas,

Risposte:


29

Dovrai eseguire il boot da un cd live. Aggiungi partizioni per loro sul disco 1, copia tutto il contenuto e poi usa sudo blkidper ottenere l'UUID di ogni partizione. Sul disco 1 nuovo /, modifica / etc / fstab per usare i nuovi UUID che hai appena cercato.

L'aggiornamento di GRUB dipende dal fatto che sia GRUB1 o GRUB2. Se GRUB1, è necessario modificare /boot/grub/device.map

Se GRUB2, penso che dovresti montare le tue partizioni come sarebbero in una situazione reale. Per esempio:

sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home

(Compilando le partizioni effettive in cui hai copiato le cose, ovviamente)

Quindi associa mount / proc e / dev in / media / root:

sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys

Ora chroot nell'unità in modo da poter forzare GRUB ad aggiornarsi in base al nuovo layout:

sudo chroot /media/root
sudo update-grub

Il secondo comando farà una lamentela (dimentico di cosa si tratti ...), ma va bene ignorarlo.

Provalo rimuovendo il disco rigido. Se non funziona, il disco rigido dovrebbe comunque essere in grado di avviare il sistema, ma credo che questi siano tutti i passaggi necessari.


3
Cordiali saluti a chiunque lo visualizzi in questi giorni, questo non si applica alle configurazioni EFI. Devi montare /media/root/boot/efi, tra le altre cose.
wjandrea,

1
Avevo bisogno di un sudo grub-install /dev/sdaprima ilsudo update-grub
William Mortada

5

Se si sostituisce immediatamente l'unità, è possibile utilizzarla dd(provata sul mio server alcuni mesi fa e ha funzionato come un fascino).

Anche per questo avrai bisogno di un CD di avvio.

  1. Avviare il CD di avvio
  2. Montare solo l'unità 1
  3. Esegui dd if=/dev/sdb1 of=/media/drive1/backuproot.img- sdb1 è la tua /partizione root ( ). Ciò salverà l'intera partizione in un file.
    • lo stesso per /boot
  4. Spegnere, sostituire il disco, accendere
  5. Esegui dd if=/media/drive1/backuproot.img of=/dev/sdb1: riscrivilo.
    • lo stesso per /boot

Quanto sopra creerà 2 partizioni con le stesse dimensioni di prima. Potrebbe essere necessario regolare grub (controlla macos post).

Se vuoi ridimensionare le tue partizioni (come ho fatto io):

  1. Crea 2 partizioni sulla nuova unità (per /e /boot; dimensioni quello che vuoi)
  2. Montare l'immagine di backup: mount /media/drive1/backuproot.img /media/backuproot/
  3. Montare la /partizione vuota :mount /dev/sdb1 /media/sdb1/
  4. Copia i suoi contenuti nella nuova partizione (non sono sicuro di questo comando, è davvero importante preservare la proprietà, cp -Rnon lo farò!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • lo stesso per /boot/

Questo dovrebbe farlo.


Si scopre che la nuova unità "40GB" che sto cercando di installare è più piccola della mia attuale unità "40GB". Ho entrambi collegati e sono avviato in un LiveCD. C'è un modo semplice per passare dal vecchio al nuovo e definirlo un affare fatto?
mlissner,

In realtà, ho risolto questa domanda. La partizione che era troppo grande era una partizione ext4, quindi ho avviato un liveCD e ho usato gparted per ridurlo un po '.
mlissner,

4

La mia soluzione finale a questo è stata una combinazione di una serie di tecniche:

  1. Ho collegato contemporaneamente l'unità morente e la sua sostituzione al computer.
  2. Il nuovo disco era più piccolo del vecchio, quindi ho ridotto le partizioni sul vecchio usando GParted.
  3. Dopo averlo fatto, ho copiato le partizioni sul vecchio disco e le ho incollate sul nuovo (anche usando GParted).
  4. Successivamente, ho aggiunto il flag di avvio alla partizione corretta sulla nuova unità, quindi era effettivamente un mirror della vecchia unità.

Tutto ha funzionato bene, ma dovevo aggiornare grub2 seguendo le istruzioni qui .

Dopo tutto ciò, le cose sembrano funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.