यह ऊपर और कहीं और मेरे लिए काम करने वाले उत्तर का संश्लेषण है - यदि आप गलती करते हैं तो अपनी छवि का बैकअप लें:
सबसे पहले छवि फ़ाइल को बड़ा करें (यहाँ हम अंत में 1GB जोड़ रहे हैं):
truncate -s +1G ./image.img
अगली छवि को पूरी तरह से एक लूप डिवाइस के रूप में मैप करें ताकि हम विभाजन तालिका में प्रहार कर सकें
sudo losetup /dev/loop0 ./image.img
भविष्य के संदर्भ के लिए इसे डंप करने देता है:
sudo fdisk -l /dev/loop0
आउटपुट जैसा दिखता है:
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
अब हम इसे हटाकर अंतिम विभाजन का रीमेक करेंगे, फिर इसे उसी आरंभ स्थान, उसी प्रकार लेकिन अलग-अलग अंतिम स्थान पर पुनः बनाएंगे। तो loop0p2 (विभाजन 2 - लिनक्स विभाजन) के लिए "स्टार्ट" कॉलम पर ध्यान दें - हम इसे बाद में उपयोग करेंगे - इसके 12282 यहाँ।
sudo fdisk /dev/loop0
निम्नलिखित दर्ज करें - वे दर्ज करने के लिए सुरक्षित हैं - जब तक आप मेरे स्पष्टीकरण को पढ़ नहीं लेते, तब तक कुछ भी स्थायी नहीं होता है:
p
d
2
n
p
2
122880
- डिफ़ॉल्ट को स्वीकार करने के लिए बस हिट दर्ज करें
p
चरण 1 - वर्तमान तालिका प्रिंट करें। चरण 2-3 - विभाजन 2 को हटाएं, चरण 4-8 - नए अंत बिंदु के साथ विभाजन 2 को पुनः बनाएं (डिफ़ॉल्ट छवि का अंत है), चरण 9 - नई तालिका का प्रिंट आउट लें।
मान लें कि आपकी नई मुद्रित तालिका मूल मान और ब्लॉक मान (यानी आकार बदल गया है) को छोड़कर मूल तालिका के समान है, तो आप प्रतिबद्ध होने के लिए तैयार हैं।
w
अपना परिवर्तन करने के लिए दर्ज करें , फिर q
छोड़ने के लिए दर्ज करें।
आप उस लूपबैक डिवाइस को हटा सकते हैं, हम दूसरे विभाजन के लिए एक और बना देंगे। याद रखें कि आपके द्वारा नोट किए गए और ऊपर उपयोग किए जाने वाले स्टार्ट ऑफ़ - हम इसे फिर से उपयोग करेंगे:
sudo losetup -d /dev/loop0 # delete the old loop setup
sudo losetup -o $((122880*512)) /dev/loop0 ./image.img
यह /dev/loop0
सिर्फ विभाजन 2 पर इंगित करने पर एक नया मानचित्रण बनाएगा - संदर्भ 512 के लिए आप पहले fdisk
आउटपुट में देख सकते हैं सेक्टर-आकार है ।
अब उपलब्ध स्थान को भरने के लिए विभाजन का आकार बदलें:
sudo e2fsck -f /dev/loop0
sudo resize2fs /dev/loop0
हो गया - अब साफ करें:
sudo losetup -d /dev/loop0