Czy mogę zmienić rozmiar partycji głównej bez odinstalowywania i ponownego instalowania systemu Linux (lub utraty danych)?

17

Zacząłem używać komputera z zainstalowanym systemem Debian i Windows 7. Jednak po zainstalowaniu niektórych programów zacząłem otrzymywać komunikat, że nie ma wystarczającej ilości miejsca. Wiedziałem, że system ma łącznie ponad 1 TB miejsca na dysku twardym i przeprowadziłem badania. Wygląda na to, że partycja root ma tylko 5 GB.

Czy jest jakiś sposób na przydzielenie większej ilości miejsca na dysku na konkretną partycję bez ponownej instalacji Linuksa?

Poniżej znajdziesz wyniki kilku poleceń, które wykonałem:

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

Edytuj (dodatkowe informacje na podstawie komentarza):

# 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

Na marginesie doceniłbym również wszelkie sugestie dotyczące dobrych książek, które szczegółowo wyjaśniają te tematy (systemy plików, sposób, w jaki różne systemy operacyjne rozumieją systemy plików itp.).

F1234k
źródło
Jaki typ systemu plików jest twój /? (Opublikuj wyjście mountlub treść, /etc/fstabjeśli nie wiesz.) Również wyjście pvdisplay(jako root) byłoby interesujące, ponieważ wydaje się, że używasz LVM.
Mat
Wyniki wspomnianych poleceń zostały dodane! Dzięki :)
F1234k
To, co próbujesz zrobić, jest możliwe, ale tylko przy użyciu LVM. Wygląda na to, że wyświetlacz df używa LVM. Jeśli zostanie wykorzystane całe miejsce w grupie woluminów „HU”, najpierw trzeba zmniejszyć wolumin logiczny „domowy”. Zmniejszenie jest znacznie bardziej niebezpieczną operacją pod względem utraty danych niż rozbudowa systemu plików.
jordanm
O wiele łatwiejsze, bezpieczniejsze rozwiązanie: Utwórz nową partycję, np. /usrI przenieś tam swój obecny / usr.
hhaamu

Odpowiedzi:

17

Ostrzeżenie : robienie czegokolwiek w systemach plików bez znanej kopii zapasowej, którą można przywrócić, jest odradzane.


Nie wykonuj żadnego z poniższych kroków, jeśli nie masz pewności, że /jest czysty. Jeśli nie masz pewności, uruchom następujące polecenie (jako root):

# touch /forcefsck

i uruchom ponownie. Spowoduje to wykonanie jednej fsckze wszystkich partycji, aby być bezpiecznym.


Biorąc to pod uwagę, ponieważ używasz LVM dla urządzenia root i ext3systemu plików, możesz rozszerzyć go online. Przed rozpoczęciem upewnij się, że masz resize2fszainstalowany. Jeśli nie, zwykle znajduje się w pakiecie o nazwie e2fsprogs. (Jeśli nie możesz go zainstalować, ponieważ nie masz wystarczającej ilości miejsca, spróbuj na przykład wykonać trochę czyszczenia /var/log).

Najpierw rozszerzasz podstawowy wolumin za pomocą (jako root):

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

(Dostosuj 2Gczęść, jak chcesz - jest to ilość miejsca, którą chcesz dodać.)

Następnie musisz zmienić rozmiar systemu plików. Można to zrobić online za pomocą resize2fs:

# resize2fs /dev/mapper/HU-root

Może to potrwać kilka sekund / minut. Nie przeszkadzaj. Wykonaj kolejny restart na końcu, prawdopodobnie z innym /forcefsck, jeśli chcesz. Nie jest to konieczne, ale i tak często to robię.

Mata
źródło
1
To nie działa dla mnie:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie
Działa to tylko w LVM, wygląda na to, że próbujesz zmienić rozmiar prawdziwej partycji.
Mat
6

Masz wolne miejsce w swoim PV do przydzielenia do partycji /. Możesz użyć następujących elementów, aby zwiększyć przestrzeń / dev / mapper / HU-root.

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

Powyższe polecenie doda 10G z grupy woluminów do woluminu logicznego głównego HU. Polecenie e2resize „powiększy” system plików ext3, aby wykorzystać pozostałe wolne miejsce.

Jordan
źródło
2
Być może nie jestem jedynym, który nie dostał go natychmiast: PV = „Objętość fizyczna”
Étienne Reinstate Monica
To nie działa dla mnie:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie
@ 8bitjunkie sda1to urządzenie fizyczne, a nie wolumin logiczny.
Jordan
-1

Z danych lvdisplaywyjściowych wybierz ścieżkę do partycji głównej, którą próbujesz zmienić rozmiar / rozwinąć.

akwaman
źródło