Dapatkah saya mengubah ukuran partisi root tanpa menghapus dan menginstal ulang Linux (atau kehilangan data)?

17

Saya sudah mulai menggunakan mesin yang memiliki Debian dan Windows 7 diinstal. Namun, setelah menginstal beberapa program saya mulai mendapatkan pesan bahwa tidak ada cukup ruang. Saya tahu bahwa sistem memiliki total lebih dari 1TB ruang hard disk dan melakukan riset. Tampaknya partisi root hanya 5GB.

Apakah ada cara untuk mengalokasikan lebih banyak ruang disk ke partisi tertentu tanpa menginstal ulang Linux?

Di bawah ini Anda dapat menemukan hasil dari beberapa perintah yang saya jalankan:

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

Edit (info tambahan berdasarkan komentar):

# 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

Sebagai sidenote, saya juga akan menghargai saran untuk buku bagus yang menjelaskan subjek ini secara mendalam (sistem file, bagaimana berbagai sistem operasi memahami sistem file, dll).

F1234k
sumber
Apa jenis sistem file Anda /? (Posting output mountatau konten /etc/fstabjika Anda tidak tahu.) Juga output pvdisplay(sebagai root) akan menarik karena Anda tampaknya menggunakan LVM.
Mat
Hasil dari perintah yang Anda sebutkan telah ditambahkan! Terima kasih :)
F1234k
Apa yang Anda coba lakukan adalah mungkin, tetapi hanya menggunakan LVM. Tampilan df yang telah Anda tunjukkan tampaknya menggunakan LVM. Jika semua ruang dalam grup volume "HU" digunakan, Anda harus menyusutkan volume logis "home" terlebih dahulu. Menyusut adalah operasi yang jauh lebih berbahaya dalam hal kehilangan data daripada menumbuhkan sistem file.
jordanm
Solusi yang jauh lebih mudah, lebih aman: Buat partisi baru, misalnya /usr, dan pindahkan Anda saat ini / usr di sana.
hhaamu

Jawaban:

17

Peringatan : melakukan apa saja pada sistem file Anda tanpa cadangan yang dikenal-restored tidak disarankan.


Jangan jalankan langkah-langkah berikut jika Anda tidak yakin Anda /bersih. Jika Anda tidak yakin, jalankan yang berikut (sebagai root):

# touch /forcefsck

dan reboot. Ini akan melakukan fscksemua partisi Anda, agar aman.


Karena itu, karena Anda menggunakan LVM untuk perangkat root dan sistem ext3file, Anda dapat memperluasnya secara online. Sebelum Anda mulai pastikan Anda telah resize2fsmenginstal. Jika tidak, biasanya dalam paket yang disebut e2fsprogs. (Jika Anda tidak dapat menginstalnya karena Anda tidak memiliki cukup ruang, coba lakukan sedikit pembersihan /var/logmisalnya.)

Pertama, Anda perluas volume yang mendasarinya dengan (sebagai root):

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

(Sesuaikan 2Gbagian sesuai keinginan - ini adalah jumlah ruang yang ingin Anda tambahkan.)

Maka Anda perlu mengubah ukuran sistem file. Ini dapat dilakukan secara online dengan resize2fs:

# resize2fs /dev/mapper/HU-root

Ini bisa memakan waktu beberapa detik / menit. Jangan menyela. Lakukan reboot lain di akhir, mungkin dengan yang lain /forcefsck, jika Anda mau. Itu tidak perlu, tetapi saya sering melakukannya.

Tikar
sumber
1
Ini tidak berfungsi untuk saya:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie
Ini hanya berfungsi pada LVM, sepertinya Anda mencoba mengubah ukuran partisi yang sebenarnya.
Mat
6

Anda memiliki ruang kosong yang tersedia di PV Anda untuk mengalokasikan ke partisi /. Anda dapat menggunakan yang berikut ini untuk menambah ruang dari / dev / mapper / HU-root.

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

Perintah di atas akan menambahkan 10G dari Volume Group Anda ke volume logis HU-root. Perintah e2resize akan "menumbuhkan" filesystem ext3 untuk menggunakan ruang kosong yang tersisa.

jordanm
sumber
2
Saya mungkin bukan satu-satunya yang tidak segera mendapatkannya: PV = "Volume Fisik"
Étienne Reinstate Monica
Ini tidak berfungsi untuk saya:Path required for Logical Volume "sda1" Please provide a volume group name
8bitjunkie
@ 8bitjunkie sda1adalah perangkat fisik, bukan volume logis.
jordanm
-1

Dari lvdisplayoutput, pilih path untuk partisi root yang Anda coba ubah ukuran / perluasannya.

manusia Air
sumber