Le estensioni delle partizioni possono essere lette da /sys/block/sda/sda1/start
, /sys/block/sda/sda1/size
e così via. I valori sono in settori. Annota questi valori prima di fare qualsiasi altra cosa, in particolare il riavvio.
Una volta che hai i valori, puoi ricreare le partizioni con fdisk
. Usa il u
comando per commutare l'unità in settori, quindi creare le partizioni inserendo
n
p
rimary/l
logico/e
esteso- numero di partizione (eccetto per le partizioni logiche:eseguirle in ordine)
- settore iniziale
+
dimensione in settori
Sono passati quasi due anni da quando è stata posta la domanda. Ieri eravamo esattamente nella stessa situazione:abbiamo un Linux Software RAID Level 1 con 2 dischi. Uno dei dischi si è rotto e ha dovuto essere sostituito. Abbiamo fatto scambiare il disco e quindi volevamo copiare la tabella delle partizioni dal disco rimanente (funzionante) al nuovo disco. Sfortunatamente, abbiamo copiato la tabella delle partizioni vuota dal nuovo disco al vecchio disco. Fortunatamente, l'abbiamo scoperto immediatamente prima di riavviare la macchina, quindi la tabella delle partizioni corretta era ancora attiva nel kernel. Ecco cosa abbiamo fatto per risolvere il problema:
- Abbiamo estratto i dati della partizione dal
/sys/block/
file system come descritto nella risposta di Gilles. - Il nostro sistema usa una tabella delle partizioni GUID, quindi non potremmo usare
fdisk
ma ho dovuto usaregdisk
invece. gdisk
funziona praticamente comefdisk
eccetto che non è necessario specificareu
per i settori.- Abbiamo creato le partizioni con l'esatto dati estratti da
/sys/block/
. Ci sono altre risposte a domande simili che dicono di ridurre la dimensione della partizione di uno, ma per noi non era necessario. - Con una tabella delle partizioni guid non c'è più distinzione tra partizioni primarie ed estese.
- Il
sys/block
file system non contiene informazioni sui tipi di file system, quindi li abbiamo estratti conmount
. - Con una tabella delle partizioni guid, non c'è più un flag avviabile. Se la tabella delle partizioni da ripristinare proviene da un disco avviabile, deve essere presente una partizione di tipo
BIOS boot partition
(di solito la prima partizione).
Dopo aver scritto la tabella delle partizioni con gdisk
, siamo riusciti a riavviare il sistema e tutto funzionava correttamente.