Aggiornamento finale:
Sapevo già cosa dovevo fare per risolvere questo problema; Non sapevo proprio come farlo. Speravo che ci fosse uno strumento già pronto per farlo automaticamente, ma non sono riuscito a trovarne. Sto accettando la risposta di Rod perché, nonostante non risolva direttamente il mio problema, fornisce un ottimo background sulla questione delle dimensioni del settore e mi ha dato la certezza che il problema riguardava davvero l'allineamento e la risoluzione delle partizioni. Per coloro che arrivano a questa domanda con lo stesso problema, leggilo attentamente e attentamente, inclusi i commenti, prima di fare qualsiasi cosa.
All'inizio
Avevo un computer e avevo bisogno di più spazio. Ho comprato una nuova unità da 500 GB e una custodia USB. Presto ho notato che se avessi partizionato l'unità sul contenitore e spostato sul computer, non avrebbe riconosciuto le partizioni (e viceversa). Ho pensato che fosse un problema con la custodia e non me ne sono preoccupato.
Quindi, tragedia
Un giorno meraviglioso, il mio computer ha deciso di non accendersi più. Si scopre che la scheda madre (senza marchio, solo un grande MADE IN CHINA stampato su di essa) è morta. L'ho usato come file server e quell'unità da 500 GB è ora piena di dati che non posso permettermi di perdere. Ora sono al verde e non posso permettermi un nuovo computer, quindi la mia unica speranza era la custodia USB "difettosa".
L'investigazione
Armato di diverse distribuzioni Linux, un laptop, VirtualBox e il contenitore ho fatto un'analisi forense sulla questione. dmesg ha riferito che la dimensione della partizione era oltre la fine del drive. Quindi ho esaminato i fogli dati del disco rigido, ho calcolato i conteggi dei settori da zero, ho testato manualmente i limiti del disco con dd e tutto è andato bene, fino a quando ho acceso fdisk e ha detto:
Note: Sector size is 4096 (not 512).
Che modesto fdisk. Questa "nota" è stata la radice di tutti i problemi. Dopo qualche altro giocherellamento furono tratte queste conclusioni:
La custodia USB non è difettosa.
Il controller SATA sulla scheda madre ormai morta è almeno quello "strano". Non ha segnalato i settori a 4096 byte al sistema operativo, quindi il sistema operativo ha creato felicemente l'MBR utilizzando indirizzi di settore a 512 byte.
Ora, quando provo ad accedere alla partizione, il sistema operativo tenta di utilizzare gli indirizzi basati su 512 byte su un'unità settoriale da 4096 byte e, naturalmente, non funzionerà.
La domanda
Quindi, come posso correggere gli indirizzi nell'MBR in modo che siano validi su una dimensione del settore di 4096 byte, oltre a modificare manualmente l'MBR su un editor esadecimale, e
Le partizioni non sono allineate per settori a 4096 byte. C'è qualche strumento disponibile per allinearli oltre alla copia dentro e fuori da un'altra unità? (Non ho unità di riserva), o dovrò creare uno strumento che "sposta" i dati lateralmente un po 'alla volta? Le partizioni sono ext3.
Grazie!
Aggiornare:
Ho scoperto che esiste un modo intelligente di usare dd per spostare la partizione sul posto in questa domanda: Come spostare una partizione in GNU / Linux? Ma non so se funzionerà su una fetta di un settore, però. Non posso provarlo adesso, ma lo farò quando avrò del tempo.
Aggiornamento 2:
Quindi ho allineato con successo la partizione usando il metodo sopra e ho modificato a mano l'MBR su un editor esadecimale. Non appena ho ricollegato l'HDD, la partizione del braccio si è montata automaticamente! Non lo consiglio però, ci sono stati errori I / O durante il processo e avrei potuto perdere tutto, vedi commento sulla risposta di Rod. Per l'altra partizione non correrò rischi e userò un vecchio HDD e allineerò blocchi alla volta copiando i dati e poi incollandoli in una posizione diversa.
fdisk
per modificare l'MBR (l'ho appreso più tardi, non c'è bisogno di editor esadecimali :)) Puoi cambiare ogni punto di inizio e dimensione della voce e rivedere le modifiche prima di applicare. Quindi: avviare fdisk
, annotare la configurazione corrente (o meglio, eseguire il backup dell'MBR con dd
), moltiplicare l'indirizzo iniziale e i valori delle dimensioni per 8 e modificarli. Assicurati di controllare tutto con una calcolatrice e di capire cosa significano i valori. Vedrai che Size = End - Start + 1 e che fdisk
mostra le dimensioni in unità di 1000 settori, quindi potrebbe essere necessario attivare la modalità esperto per vedere il valore reale, ecc.