Aumenta la dimensione della partizione su cui è installato Ubuntu?

47

Ho Ubuntu installato su un disco. Il problema è che si sta esaurendo lo spazio su disco. Questo è installato su vmware. Ho espanso il disco virtuale e avviato in Ubuntu. Ma quando ho aperto gparted (sudo gparted), l'opzione sposta / ridimensiona non è disponibile. Questa è la partizione su cui è installato Ubuntu, ma ho bisogno di ridimensionarlo. Qualche idea? Mi sento a mio agio con la riga di comando

    
posta user51447 27.03.2012 - 09:41

5 risposte

15

Ci sei quasi.
Non puoi ridimensionare la partizione usando GParted mentre Ubuntu è in esecuzione.
È necessario collegare gli ISO GParted come CD alla macchina virtuale e riavviare la macchina in modo che venga caricato il GParted anziché Ubuntu (penso che sia possibile eseguire l'avvio dal CD virtuale premendo F12 immediatamente dopo l'avvio della macchina). < br> Una volta avviato in GParted l'opzione di spostamento / ridimensionamento sarà abilitata poiché Ubuntu non è attualmente in esecuzione.

    
risposta data yossile 27.03.2012 - 10:03
112

In effetti, CAN ingrandisci il filesystem di root mentre Ubuntu è in esecuzione (l'ho imparato recentemente io stesso qui ) - sembra incredibile ma è vero:)

Ecco l'elenco dei passaggi per uno scenario semplice in cui sono presenti due partizioni, /dev/sda1 è una partizione ext4 da cui viene avviato il sistema operativo e /dev/sdb2 è swap. Per questo esercizio vogliamo rimuovere la partizione di swap estendendo /dev/sda1 all'intero disco.

  1. Come sempre, assicurati di avere un backup dei tuoi dati - dato che stiamo andando a modificare la tabella delle partizioni c'è la possibilità di perdere tutti i tuoi dati se fai un errore di battitura, per esempio.

  2. Esegui sudo fdisk /dev/sda

    • usa p per elencare le partizioni. Prendi nota del cilindro iniziale di /dev/sda1
    • usa d per elimina prima la partizione di swap ( 2 ) e poi la partizione /dev/sda1 . Questo è molto spaventoso, ma in realtà è innocuo in quanto i dati non vengono scritti sul disco finché non si scrivono le modifiche sul disco.
    • usa n per crea una nuova partizione primaria. Assicurati che il suo cilindro iniziale sia esattamente uguale al vecchio /dev/sda1 utilizzato. Per il cilindro finale concorda con la scelta predefinita, che è quella di fare in modo che la partizione si estenda all'intero disco.
    • usa a per attivare o disattivare il flag di avvio sul nuovo /dev/sda1
    • esamina le tue modifiche, fai un respiro profondo e usa w per scrivere la nuova tabella delle partizioni sul disco. Riceverai un messaggio che dice che il kernel non può rileggere la tabella delle partizioni perché il dispositivo è occupato, ma va bene.
  3. Riavvia con sudo reboot . Quando il sistema si avvia, avrai un file system più piccolo che vive all'interno di una partizione più grande.

  4. Il prossimo comando magico è resize2fs . Esegui sudo resize2fs /dev/sda1 - questo modulo imposterà automaticamente il filesystem per occupare tutto lo spazio disponibile sulla partizione.

Questo è tutto, abbiamo appena ridimensionato una partizione su cui è installato Ubuntu, senza l'avvio da un'unità esterna.

    
risposta data Sergey 27.03.2012 - 11:00
10

Dopo aver esteso il volume in vmWare ESXi (shutdown vm, backup / export vm, rimuovere tutte le istantanee, quindi aumentare il numero nella dimensione del disco, riprendere nuovamente l'istantanea di vm prima di seguire i passaggi successivi in ​​modo da poter ripristinare l'errore / errore).

Il seguente esempio sta estendendo il volume sulla partizione di root su un sistema che sta già utilizzando LVM.

  1. SSH al sistema, passa a root ed esegui cfdisk
     # cfdisk

  2. Dopo l'uscita da cfdisk

     # fdisk -l /dev/sda 
     Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     Disklabel type: dos
     Disk identifier: 0xc8b647ff
    
     Device     Boot    Start      End  Sectors  Size Id Type
     /dev/sda1  *        2048   999423   997376  487M 83 Linux
     /dev/sda2        1001470 16775167 15773698  7.5G  5 Extended
     /dev/sda3       16775168 41943039 25167872   12G 8e Linux LVM (***** See new partition /dev/sda3*****)
     /dev/sda5        1001472 16775167 15773696  7.5G 8e Linux LVM
    
  3. Riavvia il sistema prima del prossimo passo (altrimenti potresti ottenere Device /dev/sda3 not found (or ignored by filtering) )

     # shutdown now -r
    
  4. Inizializza il nuovo volume

     # pvcreate /dev/sda3
       Physical volume "/dev/sda3" successfully created
    
  5. Ottieni il nome del volume da estendere

     # vgdisplay
       --- Volume group ---
       VG Name               linuxetc1-vg (***** this is vg i'm extending*****)
       System ID             
       Format                lvm2
       Metadata Areas        1
       Metadata Sequence No  3
       VG Access             read/write
       VG Status             resizable
       MAX LV                0
       Cur LV                2
       Open LV               2
       Max PV                0
       Cur PV                1
       Act PV                1
       VG Size               7.52 GiB
       PE Size               4.00 MiB
       Total PE              1925
       Alloc PE / Size       1925 / 7.52 GiB
       Free  PE / Size       0 / 0  
       ...
    
  6. Estendi gruppo di volumi

     # vgextend linuxetc1-vg /dev/sda3
       Volume group "linuxetc1-vg" successfully extended
    
  7. Estendi root

     # lvextend -l+100%FREE /dev/linuxetc1-vg/root
       Size of logical volume linuxetc1-vg/root changed from 6.52 GiB (1669 extents) to 18.52 GiB (4741 extents).
       Logical volume root successfully resized.
    
    
     Or if you only wanted to give 5 more GB to root
     # lvextend -L +5g /dev/linuxetc1-vg/root
    
  8. Ottieni il nome del filesystem per il prossimo passo

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root  6.3G  2.5G  3.5G  42% /            (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
  9. Estendi il filesystem

     # resize2fs /dev/mapper/linuxetc1--vg-root
     resize2fs 1.42.13 (17-May-2015)
     Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
     old_desc_blocks = 1, new_desc_blocks = 2
     The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
    
  10. Vedi le dimensioni aumentate

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root   19G  2.5G   15G  15% /         (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    

Articoli: link
link

    
risposta data jtlindsey 27.07.2017 - 18:25
0

Sono riuscito ad ingrandire il mio party ext4 principale utilizzando la metodologia descritta qui .

Alcune note dalla mia esperienza personale:

  • L'esempio di collegamento è per la compattazione della partizione, quindi l'ordine è resize2fs prima e poi fdisk. Quando si ingrandisce la partizione (come nel mio caso) l'ordine dovrebbe essere prima fdisk, riavviare e quindi resize2fs. Inoltre, quando si utilizza fdisk, le partizioni primarie e quelle estese dovrebbero essere rimosse e ridefinite.
  • Ho avviato l'ubonto da un'altra unità e poi ho lavorato su questa unità che in realtà era mirror (usando dd) della vecchia unità. Lo ha reso avviabile utilizzando GParted
  • La versione corrente di resize2fs (sto usando ubontu 12.04LTS) supporta ext4 - non c'è bisogno di fare le azioni descritte nel link di cambiarlo ext2.
risposta data Elchanan 30.03.2013 - 23:06
0

La risposta di Sergey è stata eccellente. Se si dispone dello spazio vuoto non direttamente nel dispositivo successivo, tuttavia, sarà necessario eliminare altri dispositivi. Ad esempio:

Device     Boot    Start       End  Sectors Size Id Type
/dev/sda1  *        2048  33556477 33554430  16G 83 Linux
/dev/sda2       33556478  41940991  8384514   4G  5 Extended
/dev/sda3       41940992 125829119 83888128  40G 83 Linux
/dev/sda5       33556480  41940991  8384512   4G 82 Linux swap / Solaris

Nel caso precedente, se vuoi unire /dev/sda3 con /dev/sda1 , devi rimuovere /dev/sda1 , /dev/sda2 e /dev/sda3 (con il comando d ) e aggiungere nuovamente /dev/sda2 e aggiorna il suo tipo (con n e t comandi).

    
risposta data jaycode 07.05.2017 - 12:10

Leggi altre domande sui tag