Ridimensionamento della partizione di avvio con crittografia del disco completo


12

Ho visto le risposte alla domanda generale relativa al ridimensionamento della partizione di avvio. Nel mio caso, ho installato Ubuntu 12.04 Alternate con la crittografia completa del disco. Poiché l'unità non può essere montata durante l'operazione di ridimensionamento, la partizione principale non viene danneggiata?

Ho eseguito il backup di tutto, quindi potrei potenzialmente effettuare una reinstallazione, ma non so come specificare la dimensione della partizione di avvio prima della crittografia.

Risposte:


3

So che questa domanda è vecchia, ma emerge quando si cerca il piccolo problema della partizione di avvio e si utilizza la crittografia del disco.

Il programma di installazione di Ubuntu ubiquityutilizza partmanper il partizionamento. Quando è selezionata l'opzione "Usa l'intero disco", le configurazioni della partizione provengono dai file della ricetta partman nel /lib/partman/recipes-[arch]/*e /lib/partman/recipes/*sul CD live. Trova la ricetta utilizzata dal programma di installazione e modifica la dimensione massima per la /bootpartizione. Sul mio sistema, la ricetta predefinita utilizzata è /lib/partman/recipes/30atomic. Apri il terminale:

ubuntu@ubuntu:~$ sudo nano /lib/partman/recipes/30atomic

Vai alla sezione per la partizione di avvio e modifica il terzo numero (256 sotto) nella dimensione desiderata (ti consiglierei almeno 512):

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

Questa sezione afferma che le dimensioni saranno comprese tra 128 M e 256 M con una priorità di 512, che determina quanto sia importante la dimensione di questa partizione rispetto ad altre.

Salvarlo con Ctrl+ O, Enter. Quindi avviare il programma di installazione, installare come al solito.


2

Presumo per crittografia completa del disco, intendi avere una piccola partizione di avvio non crittografata e un'altra partizione che è un volume fisico per la crittografia (dm-crypt). Se non c'è spazio tra loro, non sarai in grado di ridimensionare in modo non distruttivo la partizione crittografata per creare più spazio per / boot.

Dai un'occhiata alla mia risposta qui - questo potrebbe aiutare.


0

Sì, è possibile ridimensionare l'avvio ma è molto complicato. Proverei solo dopo aver eseguito il backup di TUTTI i tuoi dati. Se si commette un errore, il potenziale di perdita di dati è piuttosto elevato. Avrai bisogno di avere alcuni USB / CD live di Ubuntu avviabili poiché dovresti eseguire queste operazioni dopo l'avvio su un USB / CD live.

Ho scoperto il modo difficile qualche tempo fa quando la comunità di Linux cambia i requisiti riguardanti la dimensione richiesta della partizione di avvio. In precedenza, 100-200 MB erano sufficienti per l'avvio, ma la comunità ha raddoppiato i requisiti di dimensione. Ciò ha influito sugli utenti che stavano seguendo le linee guida precedenti.

/server/334663/what-is-the-recommended-size-for-a-linux-boot-partition

Per i requisiti attuali per / boot, ti rimando alle linee guida ufficiali.

https://help.ubuntu.com/community/DiskSpace

Al momento della stesura di questo documento, le linee guida raccomandano / avviano da 250 MB a 1 GB di spazio. Consiglierei una partizione di avvio separata con lo spazio richiesto più grande. La partizione di avvio deve essere non crittografata durante il processo di avvio. Il processo di avvio monterà diverse partizioni crittografate lungo la strada, ad esempio dischi crittografati LUKS o directory HOME crittografate e ci sono differenze tra questi approcci. Nella mia esperienza, l'uso delle varie opzioni di crittografia del disco rigido di Ubuntu tende a causare problemi quando si aggiorna Ubuntu in seguito richiedendo un intervento manuale.

Per una panoramica generale, ti farò riferimento a questo articolo che considero ben scritto.

'LUKS crittografa più partizioni su Debian / Ubuntu con un'unica passphrase'

https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/

Quando trovi la necessità di cambiare le tue partizioni, ho trovato questo post molto utile.

"Come ridimensionare un file system crittografato LUKS"

https://ubuntuforums.org/showthread.php?t=726724

Ora, poiché gparted non supporta lo spostamento di partizioni LUKS crittografate, ciò non può essere fatto utilizzando i comandi gparted dalla riga di comando né dalla GUI. Ho scoperto che è possibile utilizzare gparted per creare partizioni e quindi utilizzare dd per spostare le partizioni crittografate utilizzando le copie settore per settore. Ciò implica la possibilità di calcolare le dimensioni delle porzioni in termini di settori. Fare un errore significa perdita di dati e una reinstallazione.

Nel mio caso, devo aumentare la dimensione della mia porzione di avvio da 537 MB a 1 GB. Ho bisogno di questo come parte del mio aggiornamento da Ubuntu 12.04 a 14.04 in modo che l'aggiornamento di Ubuntu possa trovare abbastanza spazio all'avvio / avvio. Sì, puoi rimuovere autoremove per liberare spazio in / boot ma i requisiti generali erano cambiati, quindi stavo allargando il boot per adattarmi anche a quelle linee guida. Ecco il mio layout di partizione.

Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot
 2      538MB   794MB  256MB  ext2
 3      794MB   240GB  239GB

Ho il disco crittografato LUKS nella partizione n. 3 e il mio avvio nella partizione n. 1, quindi non c'era spazio sufficiente per estendere / avviare. Nota Gparted non può spostare la partizione n. 3 poiché è una partizione crittografata. Per risolvere questo problema, ho creato una quarta porzione alla fine del mio disco della stessa dimensione in settori e ho usato dd per copiare il contenuto della partizione n. 3 sulla partizione n. 4. Ho trovato utile ridimensionare la mia radice alla dimensione minima necessaria. Pertanto, ho eseguito le seguenti operazioni per indirizzare le dimensioni di my / boot.

  1. Ridotto il filesystem di root nella partizione # 3
  2. Ridimensionata la partizione n. 3 (per essere più piccola)
  3. Creata una partizione n. 4 della stessa dimensione (alla fine del disco)
  4. DD usato per copiare i settori della partizione n. 3 nella partizione n. 4
  5. Eliminata la partizione n. 3 per liberare spazio sul disco
  6. Usato Gparted per ridimensionare e spostare le partizioni n. 1 e n. 2
  7. Creata una nuova partizione n. 3 della stessa dimensione della partizione ridotta n. 3 (o n. 4)
  8. DD usato per copiare i settori della partizione n. 4 nella partizione n. 3
  9. Elimina la partizione n. 4
  10. Espandi la dimensione della porzione # 3 alla dimensione originale # 3
  11. Aggiornato il filesystem contenuto nella partizione crittografata n. 3 nello spazio rimanente

In questo modo ho potuto eliminare la partizione n. 3 e usare gparted per spostare e ingrandire le partizioni n. 1 e n. 2. Leggere le guide sopra dovrebbe fornire informazioni sufficienti per orientarsi. Non viene mostrato qui, ma nel ridurre la mia partizione di root, ho eliminato un gruppo di volumi di scambio sulla stessa partizione e ricreato alla fine. Tutto ciò viene eseguito durante l'avvio su un'unità flash USB Live Linux. Di seguito sono riportati alcuni dei miei appunti che non erano prontamente disponibili nelle guide sopra.

Ho trovato blockdev utile per visualizzare le dimensioni delle partizioni in settori. Questo mi aiuta mentre stavo calcolando le dimensioni del settore.

sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

Il comando Gparted 'unit s' visualizzerà la tabella delle partizioni in settori. Tutto il dimensionamento, l'eliminazione e la creazione della partizione vengono eseguiti utilizzando Gparted. In questo modo puoi semplicemente fare tutta la matematica nei settori. L '"unità compatta" tornerà al formato MB / GB, se vuoi vedere come appare la matematica del settore.

(parted) unit s
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  456656896s  455106561s

Il comando resize2fs ha un'opzione nifty per ridimensionare al minimo. Inoltre, durante questa parte ho eliminato il mio gruppo di volumi di scambio.

ubuntu@ubuntu:~$ sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.

Quando si ridimensionano le tabelle delle partizioni, tornare indietro e aggiornare gparted. Usa 4096 * 2260992 e poi blockdev per controllare qui la matematica. Ecco il comando gparted.

(parted) resizepart 3
End?  [224419843s]? 225970179s 
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes                                                               
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  225970179s  224419844s

Nota che la dimensione del conteggio settoriale della partizione n. 3 è inferiore alla mia lista originale, ovvero in questo modo puoi usare gparted per creare la partizione n. 4 prima della copia DD. Il restringimento libera più spazio su disco per quella copia.

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s

Dopo la copia DD, vai avanti e ingrandisci la dimensione della tua partizione / boot. Eliminerai la partizione n. 3 originale e poi ricreaerai la partizione n. 3 in una nuova posizione del settore dopo le partizioni allargate n. 1 e n. 2. Ancora una volta blockdev è stato utilizzato per misurare le dimensioni del settore. Ho creato questa partizione n. 3 con le stesse dimensioni della partizione n. 4, che è più piccola di quella originariamente n. Utilizzare DD per copiare i settori n. 4 nella partizione n. 3.

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624

Dopo aver copiato, eliminare la partizione n. 4 ed espandere le dimensioni della partizione n. 3. Nel mio caso, ho appena ripristinato la porzione n. 3 per ridimensionare lo stato quando ho iniziato. Ho avuto abbastanza spazio per farlo.

(parted) resizepart 3                                                     
End?  [464349185s]? 464349184s                                           
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y                                                                 
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     4192255s    4190208s    fat32              boot
 2      5146624s  9242623s    4096000s    ext2
 3      9242624s  464349184s  455106561s

Quando gparted aumenta la dimensione della partizione, non aggiorna il filesystem. Nota che il filesystem è contenuto all'interno della partizione crittografata, quindi deve essere aperto e montato per effettuare questa modifica. Utilizzare il seguente comando per risolvere il problema. Questo può essere fatto sul sistema live se necessario.

user@zagyg:/$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.

In conclusione, mentre Gparted non supporta la sua operazione in modo nativo, ma è uno strumento incredibilmente utile per la gestione delle partizioni. Secondo me è un po 'più utile di fdisk. Tra Gparted e DD sono stato in grado di gestire le mie partizioni e quindi utilizzare gli strumenti Ubuntu per passare da 12.04 LTS a 14.04 LTS.


La partizione di avvio non deve essere non crittografata. Non ho una partizione separata / avvio, fa solo parte dei miei rootfs crittografati principali. Grub può avviarsi in tale configurazione bene. II avvio dalla mia partizione EFI da 1 MiB. E mentre il ridimensionamento / avvio richiede circa questi passaggi, non è necessario eseguirli manualmente. Puoi semplicemente usare KDE Partition Manager 3.0 per eseguire tutti questi passaggi. Ad esempio, eseguo alcune operazioni qui sui miei rootfs crittografati dall'interno del sistema senza nemmeno usare il cd live youtube.com/watch?v=FKCQ7pJN1vY Sebbene il cd live sia necessario per spostare la partizione luks.
Andrius Štikonas,
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.