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
nprimary/llogico/eesteso- 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
fdiskma ho dovuto usaregdiskinvece. gdiskfunziona praticamente comefdiskeccetto che non è necessario specificareuper 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/blockfile 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.