Ubuntu'nun yüklü olduğu bölüm boyutunu artırma


60

Bir sürücüye Ubuntu yüklü. Sorun şu ki, disk alanı azalıyor. Bu vmware üzerine kuruludur. Sanal sürücüyü genişlettim ve ubuntu'ya başlattım. Ancak gparted (sudo gparted) açtığımda, taşı / yeniden boyutlandır seçeneği kullanılamıyor. Bu, Ubuntu'nun kurulu olduğu bölüm ama yeniden boyutlandırmam gerekiyor. Herhangi bir fikir? Komut satırı kullanarak rahatım


raspi-configAhududu Pi için nasıl yaptıklarını görebilirsiniz ; kök dosya sistemini genişletmek, hemen hemen her yeni Ahududu Pi'yi kurduğunuzda yaptığınız bir şeydir. github.com/RPi-Distro/raspi-config/blob/…
sshow

Yanıtlar:


16

Neredeyse oradasın.
Sen olamaz Ubuntu çalışırken GParted kullanarak bölümü yeniden boyutlandırmak.
GParted ISO'ları bir CD olarak VM makinesine takmanız ve makineyi yeniden başlatmanız gerekecek, böylece Ubartu yerine GParted yüklenecek (sanırım makine başladıktan hemen sonra F12'ye basarak sanal CD'den önyükleyebilirsiniz).
GParted'e önyükleme yaptığınızda, Ubuntu şu anda çalışmadığı için taşıma / yeniden boyutlandırma seçeneği etkinleştirilecektir.


139

Nitekim olarak, CAN büyütmek Ubuntu çalışırken kök dosya sistemini (Ben bu son zamanlarda kendim öğrendim burada bu inanılmaz geliyor ama doğru :) -)

İki bölümünüzün olduğu basit bir senaryo için adımların listesi /dev/sda1, işletim sisteminin başlatıldığı ve /dev/sdb2değiştirilebildiği bir ext4 bölümüdür . Bu alıştırma için, takas bölümünü bir /dev/sda1diskin sonuna kadar genişletmek istiyoruz .

  1. Her zaman olduğu gibi, verilerinizin yedeğini aldığınızdan emin olun - bölüm tablosunu değiştireceğimizden dolayı, örneğin bir yazım hatası yaparsanız tüm verilerinizi kaybetme şansı vardır.

  2. Çalıştırmak sudo fdisk /dev/sda

    • pbölümleri listelemek için kullanın . Başlangıç ​​silindirini not edin/dev/sda1
    • önce takas bölümünü ( ) ve sonra bölümü silmekd için kullanın . Bu çok korkutucu ama veriler diske yazılmadan diske yazılmadığından aslında zararsız.2/dev/sda1
    • kullanmak niçin oluşturmak , yeni bir birincil bölüm. Çalıştırma silindirinin eskisi ile aynı olduğundan emin olun /dev/sda1. Son silindir için, tüm diski kapsayacak şekilde bölme yapmak olan varsayılan seçenekle aynı fikirdesiniz.
    • aönyüklenebilir bayrağı yenisiyle değiştirmek için kullanın/dev/sda1
    • değişikliklerinizi gözden geçirin, derin bir nefes alın ve wyeni bölümleme tablosunu diske yazmak için kullanın . Cihaz meşgul olduğu için çekirdeğin bölüm tablosunu tekrar okuyamadığını söyleyen bir mesaj alacaksınız, ama sorun değil.
  3. İle yeniden başlat sudo reboot. Sistem önyüklendiğinde, daha büyük bir bölüm içinde yaşayan daha küçük bir dosya sistemine sahip olursunuz .

  4. Bir sonraki sihir komutu resize2fs. Çalıştır sudo resize2fs /dev/sda1- bu form, dosya sisteminin bölümdeki tüm kullanılabilir alanı kullanmasını sağlamak için varsayılan olacaktır.

İşte bu, harici bir sürücüden önyükleme yapmadan Ubuntu'nun kurulu olduğu bir bölümü yeniden boyutlandırdık.


@EliahKagan: Lütfen bağladığım cevaba bir göz atın (Gilles'dan). Buradaki fikir, işletim sistemi daha küçük dosya sistemini kullanmaya devam ederken bölümüfdisk büyütmek için kullanmak mümkün . Sonra. Bir yeniden başlatma işleminden sonra, çekirdek güncellenmiş bölüm tablosunu yeniden okuduktan sonra, dosya sistemini yeniden boyutlandırabiliriz, çünkü artık daha büyük bir bölümde yaşıyor.
Sergey

1
@Iacac: Evet, çekirdeği bölüm tablosunu yeniden okumak için yeniden başlatmamız gerekiyor. Ancak, birçok senaryolarda hızlı bir yeniden başlatma harici ortamından önyükleme çok daha küçük bir problemdir (uzaktan makineleri, başsız makineleri, VPSes vs. düşünün)
Sergey'i

2
İki kısa not: 1. Bundan dfsonra "sonuç" alanını göstermek için kullanabilirsiniz (çalıştığını onaylayın) ve 2. bazı takas alanını yeniden yaratmayı unutmayın!
Christian Rondeau

1
Çok teşekkürler. Ubuntu, VirtualBox vdisk'ini verdiğim alanı hiç kullanmamış Şimdi nedenini biliyorum. Çok teşekkürler!
penderi

1
@Sid: Marş silindirinin tamamen aynı olması çok önemlidir. Boş alan, bölmeden hemen sonra herhangi bir yerde ise, başka bir yöntem kullanmanız gerekir (ki bu, başka bir sürücüden önyükleme yapılmasını gerektirir)
Sergey

21

İki yöntem

1. Ubuntu Sunucusu 16.04 - 18.10 arasında test edilmiştir.

VMware ESXi'deki birimi genişlettikten sonra (kapatma vm, vm yedekleme / verme, tüm anlık görüntüleri kaldırın, ardından disk boyutunda artan sayı, sonraki adımları izlemeden önce vm görüntüsünü tekrar alın, böylece hata / hatayı geri alabilirsiniz).

Aşağıdaki örnek, LVM kullanan bir sistemde kök bölümdeki birimi genişletiyor.

  1. sshsisteme, cfdisk
    root'a geçin ve # cfdisk komutunu çalıştırın.

  2. görüntü tanımını buraya girin

  3. görüntü tanımını buraya girin

  4. görüntü tanımını buraya girin

  5. görüntü tanımını buraya girin

  6. görüntü tanımını buraya girin

  7. görüntü tanımını buraya girin

  8. görüntü tanımını buraya girin

  9. görüntü tanımını buraya girin

  10. görüntü tanımını buraya girin

  11. görüntü tanımını buraya girin

  12. görüntü tanımını buraya girin

  13. Cfdisk'ten çıktıktan sonra

     # 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
    
  14. Bir sonraki adımdan önce sistemi yeniden başlatın (ya da başınıza gelebilir Device /dev/sda3 not found (or ignored by filtering))

     # shutdown now -r
    
  15. Yeni birimi başlat

     # pvcreate /dev/sda3
       Physical volume "/dev/sda3" successfully created
    
  16. Uzatılacak birimin adını alın

     # 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  
       ...
    
  17. Birim grubunu genişlet

     # vgextend linuxetc1-vg /dev/sda3
       Volume group "linuxetc1-vg" successfully extended
    
  18. Kökü genişlet

     # 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
    
  19. Bir sonraki adım için dosya sistemi adını al

     # 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
    
  20. Dosya sistemini genişlet

     # 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.
    
  21. Arttırılmış boyuta bak

     # 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
    

2. Ubuntu Sunucusunda Test Edilen Daha Hızlı Yöntem 18.04.3 LTS

Bu yöntem ilkinden biraz daha hızlı. Bu, cfdiskmenüdeki "Yeniden Boyutlandır" adlı yeni bir seçenek nedeniyle bazı adımları kaydeder.

VMware ESXi'deki birimi genişlettikten sonra (kapatma vm, vm yedekleme / verme, tüm anlık görüntüleri kaldırın, ardından disk boyutunda artan sayı, sonraki adımları izlemeden önce vm görüntüsünü tekrar alın, böylece hata / hatayı geri alabilirsiniz).

Aşağıdaki örnek, LVM kullanan bir sistemde kök bölümdeki birimi genişletiyor.

  1. sshsisteme, root'a geçin ve çalıştırın cfdisk.

  2. Uzatılacak bölümü seçin ve "Yeniden Boyutlandır" ı seçin. görüntü tanımını buraya girin

  3. "Yeni boyut" ayarını yapınız. görüntü tanımını buraya girin

  4. Enter tuşuna bastıktan sonra, "Partition [someNumber] resized" adlı notu göreceksiniz: görüntü tanımını buraya girin

  5. Sonra değişikliklerinizi "yazmanız" (kaydetmeniz) gerekir: görüntü tanımını buraya girin görüntü tanımını buraya girin görüntü tanımını buraya girin

  6. Çık cfdisk. Çıktığınızda "diskleri eşitleme" mesajı görebilirsiniz. görüntü tanımını buraya girin görüntü tanımını buraya girin

  7. Sistemimi bu noktada yeniden başlattım ancak gerekli olmayabilir. Şimdi ilk yöntemden 19. adımdan itibaren başlatma yapabilirsiniz (aşağıda tekrarlanmıştır).

  8. (19) Bir sonraki adım için dosya sistemi adını alın

     # 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. (20) Dosya sistemini genişlet

     # 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. (21) Arttırılmış boyuta bakın

     # 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
    

Makaleler:
https://wiki.ubuntu.com/Lvm
http://www.geoffstratton.com/expand-hard-disk-ubuntu-lvm


Vay. Bu son derece yardımcı oldu. Keşke birden fazla kez oy kullanabilseydim. Teşekkürler!
Mario Tacke

1
ESXi altında çalışan 18.10'da mükemmel çalıştı. Teşekkürler!
John Vinopal

Kesinlikle muhteşem, Sadece bir linux noob olarak ihtiyacım olan şeydi. .
bigbadmouse

Harika rehber! Bunu Proxmox VM olarak çalışan Ubuntu'da depolamayı genişletmek için takip etti.
tokenizer_fsj

Fantastik! Bunun için teşekkür ederim. Bu, ESXi'de çalışan 18.04 için çalıştı.
one.time

0

Sergey'den cevap mükemmeldi. Ancak, doğrudan bir sonraki aygıtta olmayan boş alan varsa, diğer aygıtları silmeniz gerekir. Örneğin:

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

Yukarıdaki durumda Birleştirmek istediğiniz takdirde, /dev/sda3ile /dev/sda1, kaldırmak gerekir /dev/sda1, /dev/sda2ve /dev/sda3(ile dkomuta) ve yeniden eklemek /dev/sda2ve (onun türünü güncellemek nve tkomutları).


0

Burada açıklanan metodolojiyi kullanarak birincil ext4 bölümümü büyütmeyi başardım .

Kişisel deneyimimden bazı notlar:

  • Bağlantı örneği, bölümü küçültmek içindir, bu nedenle sipariş önce resize2fs, sonra fdisk'tir. Bölümü büyütürken (benim durumumda olduğu gibi), sipariş önce fdisk olmalı, yeniden başlatmalı ve sonra resize2fs olmalıdır. Ayrıca, fdisk kullanılırken, genişletilmiş bölümlerin yanı sıra birincil ve kaldırılmalı ve yeniden tanımlanmalıdır.
  • Ubuntu'yu başka bir sürücüden başlattım ve daha sonra eski sürücünün aynası olan (dd kullanarak) bu sürücü üzerinde çalıştım. GParted kullanarak önyüklenebilir hale getirildi
  • Resize2fs'nin şu anki sürümü (Ubuntu 12.04LTS kullanıyorum) ext4'ü destekliyor - ext2'yi değiştirme bağlantısında açıklanan eylemleri yapmanıza gerek yok.

1
Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Braiam,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.