Bu, yukarıdaki ve benim için çalışan başka yerlerin cevaplarının bir sentezidir - bir hata yapmanız durumunda resminizi yedekleyin:
Öncelikle resim dosyasını büyütün (burada sonuna 1GB ekliyoruz):
truncate -s +1G ./image.img
Daha sonra, bölüm tablosuna poke yapabilmemiz için görüntünün tamamını bir döngü cihazı olarak eşleyin
sudo losetup /dev/loop0 ./image.img
Gelecekte başvurmak için onu dökelim:
sudo fdisk -l /dev/loop0
Çıktı şöyle görünür:
Disk /dev/loop0: 2962 MB, 2962227200 bytes
255 heads, 63 sectors/track, 360 cylinders, total 5785600 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
Disk identifier: 0x000c4661
Device Boot Start End Blocks Id System
/dev/loop0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/loop0p2 122880 5785599 2831360 83 Linux
Şimdi son bölümü silerek, ardından aynı başlangıç konumunda, aynı türde ancak farklı bitiş konumunda yeniden oluşturacağız. Döngü0p2 (bölüm 2 - Linux bölümü) için "Başlat" sütununu not edin - daha sonra kullanacağız - 122880 burada.
sudo fdisk /dev/loop0
Aşağıdakileri girin - girmeleri güvenlidir - aşağıdaki açıklamamı okuyana kadar kalıcı bir şey olmaz:
p
d
2
n
p
2
122880
- varsayılanı kabul etmek için enter tuşuna basmanız yeterlidir
p
Adım 1 - Geçerli tabloyu yazdırın. Adım 2-3 - bölüm 2'yi silin, Adım 4-8 - bölüm 2'yi yeni bitiş noktasıyla yeniden oluşturun (varsayılan görüntü sonu), Adım 9 - yeni tabloyu yazdırın.
Yeni yazdırılan tablonuzun, bitiş değeri ve Bloklar değeri (yani boyut değişti) hariç, orijinal tablo ile aynı olduğunu varsayarsak, işlemeye hazırsınız.
w
Değişikliğinizi yapmak için girin , ardından q
çıkmak için girin .
Bu geri döngü cihazını silebilirsiniz, ikinci bölüm için başka bir tane yapacağız. Yukarıda not ettiğiniz ve kullandığınız başlangıç ofsetini hatırlayın - tekrar kullanacağız:
sudo losetup -d /dev/loop0 # delete the old loop setup
sudo losetup -o $((122880*512)) /dev/loop0 ./image.img
Bu, /dev/loop0
yalnızca 2. bölüme işaret etme konusunda yeni bir eşleme oluşturacaktır - referans 512 için ilk fdisk
çıktıda görebileceğiniz sektör boyutu söz konusudur .
Şimdi boş alanı doldurmak için bölümü yeniden boyutlandırın:
sudo e2fsck -f /dev/loop0
sudo resize2fs /dev/loop0
Tamamlandı - şimdi temizleyin:
sudo losetup -d /dev/loop0