Posso ridimensionare la partizione di root senza disinstallare e reinstallare Linux (o perdere dati)?


17

Ho iniziato a usare una macchina su cui sono installati sia Debian che Windows 7. Tuttavia, dopo aver installato alcuni programmi ho iniziato a ricevere un messaggio che non c'era abbastanza spazio. Sapevo che il sistema aveva in totale più di 1 TB di spazio su disco rigido e ho fatto qualche ricerca. Sembra che la partizione di root sia solo di 5 GB.

Esiste un modo per allocare più spazio su disco per la partizione specifica senza reinstallare Linux?

Di seguito puoi trovare i risultati di un paio di comandi che ho eseguito:

fdisk -l

Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4a47e2fd

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              13       53507   429687500    7  HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3           53507       77826   195340289    5  Extended
Partition 3 does not end on cylinder boundary.
/dev/sda5           53507       53537      243712   83  Linux
/dev/sda6           53538       77826   195095552   8e  Linux LVM

Disk /dev/sdb: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4a47e2fe

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               2       62261   500097657+   f  W95 Ext'd (LBA)
/dev/sdb5               2       62261   500097656+   7  HPFS/NTFS

Disk /dev/dm-0: 4999 MB, 4999610368 bytes
255 heads, 63 sectors/track, 607 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 1996 MB, 1996488704 bytes
255 heads, 63 sectors/track, 242 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/dm-2: 20.0 GB, 19998441472 bytes
255 heads, 63 sectors/track, 2431 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-2 doesn't contain a valid partition table

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/HU-root   4.6G  4.4G   32M 100% /
tmpfs                 2.0G     0  2.0G   0% /lib/init/rw
udev                  2.0G  220K  2.0G   1% /dev
tmpfs                 2.0G  356K  2.0G   1% /dev/shm
/dev/sda5             231M   22M  198M  10% /boot
/dev/mapper/HU-home    19G  751M   17G   5% /home

Modifica (informazioni extra basate sul commento):

# mount
/dev/mapper/HU-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda5 on /boot type ext3 (rw)
/dev/mapper/HU-home on /home type ext3 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda6
  VG Name               HU
  PV Size               186.06 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              47630
  Free PE               41194
  Allocated PE          6436
  PV UUID               wmEFAc-eSb6-r3qo-jIjy-vuKH-v9JK-eQfJFZ

Come sidenote, apprezzerei anche qualsiasi suggerimento per buoni libri che spieghino questi argomenti in modo approfondito (file system, come i vari sistemi operativi comprendono i file system, ecc.).


Che tipo di filesystem è il tuo /? (Pubblica l'output mounto il contenuto di /etc/fstabse non lo sai.) Anche l'output di pvdisplay(come root) sarebbe interessante poiché sembra che tu stia usando LVM.
Mat

I risultati dei comandi che hai citato sono stati aggiunti! Grazie :)
F1234k,

Quello che stai cercando di fare è possibile, ma solo usando LVM. Il display df che hai mostrato sembra utilizzare LVM. Se viene utilizzato tutto lo spazio nel gruppo di volumi "HU", sarà prima necessario ridurre il volume logico "home". La riduzione è un'operazione molto più pericolosa in termini di perdita di dati rispetto alla crescita di un filesystem.
Jordan

Soluzione molto più semplice e sicura: crea una nuova partizione, ad esempio /usr, e sposta lì il tuo attuale / usr.
Hhaamu,

Risposte:


17

Avvertenza : fare qualsiasi cosa al filesystem senza un backup ripristinabile noto è sconsigliato.


Non eseguire nessuno dei seguenti passaggi se non sei sicuro di /essere pulito. Se non sei sicuro, esegui quanto segue (come root):

# touch /forcefsck

e riavviare. Questo farà una fsckdelle tue partizioni, per essere al sicuro.


Detto questo, poiché stai usando LVM per il tuo dispositivo root e un ext3filesystem, puoi estenderlo online. Prima di iniziare assicurati di aver resize2fsinstallato. In caso contrario, di solito si trova in un pacchetto chiamato e2fsprogs. (Se non riesci a installarlo perché non hai abbastanza spazio, prova ad fare un po 'di pulizia /var/logad esempio.)

Innanzitutto estendi il volume sottostante con (come root):

# lvextend -L+2G /dev/mapper/HU-root

(Regola la 2Gparte come desideri: è la quantità di spazio che desideri aggiungere.)

Quindi è necessario ridimensionare il filesystem. Questo può essere fatto online con resize2fs:

# resize2fs /dev/mapper/HU-root

Questo può richiedere alcuni secondi / minuti. Non interrompere. Fai un altro riavvio alla fine, possibilmente con un altro /forcefsck, se vuoi. Non è necessario, ma lo faccio spesso comunque.


1
Questo non funziona per me:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie,

Funziona solo su LVM, sembra che tu stia cercando di ridimensionare una vera partizione.
Mat

6

Hai spazio libero disponibile nel tuo PV per l'allocazione alla / partizione. È possibile utilizzare quanto segue per aumentare lo spazio di / dev / mapper / HU-root.

lvextend -L +10G /dev/mapper/HU-root
e2resize /dev/mapper/HU-root

Il comando sopra aggiungerà 10G dal tuo gruppo di volumi al volume logico HU-root. Il comando e2resize "farà crescere" il filesystem ext3 per utilizzare lo spazio libero rimanente.


2
Potrei non essere l'unico a non averlo capito subito: PV = "Volume fisico"
Étienne Reinstate Monica

Questo non funziona per me:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie,

@ 8bitjunkie sda1è un dispositivo fisico, non un volume logico.
Giordania,

-1

Dalla lvdisplayuscita scegliere il percorso per la partizione di root che si sta tentando di ridimensionare / espandersi.

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.