この投稿でプロセスを試しました。イメージファイルのパーティションのサイズ変更。私の例では、なぜ問題が発生するのか理解できませんでした。
を使用して8GBの画像を作成しましたdd
。イメージには2つのパーティションが含まれています。
私はマッピングされた画像を使用しますlosetup -P /dev/loop0 $image-file
。
それから:
resize2fs /dev/loop0p2 4000M
resize2fs 1.44.1 (24-Mar-2018)
Resizing the filesystem on /dev/loop0p2 to 1536000 (4k) blocks.
The filesystem on /dev/loop0p2 is now 1536000 (4k) blocks long.
e2fsck -f /dev/loop0p2 ->>> clean
parted /dev/loop0
(parted) resizepart 2 4000MB` ; print gives 4GB partition
(parted) quit
partprobe -s /dev/loop0
lsblk /dev/loop0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 7,5G 0 loop
├─loop0p1 259:2 0 256M 0 loop
└─loop0p2 259:3 0 3,5G 0 loop
root@O3:/home/m/tmp# e2fsck -f /dev/loop0p2
e2fsck 1.44.1 (24-Mar-2018)
The filesystem size (according to the superblock) is 1903360 blocks
The physical size of the device is 1154143 blocks
**Either the superblock or the partition table is likely to be corrupt**!
Abort? yes
resize2fs
partedを使用してパーティションのサイズを変更すると、クリーンアップ後に矛盾が発生する可能性がありますe2fsck
。
画像ファイルを縮小する方法を調べるためのアイデアはありますか?
ベストアンサー1
@sudodusと@fra-sanに感謝します。
resize2fs
parted
ファイルシステム/パーティションを結合して縮小すると互換性の問題があるようです。 resize2fsは4kブロックを使用し、partedはバイトまたはMB、GBなどを使用します。
結局、2番目のパーティションを縮小する別の方法が見つかりましたgnome-disks
。 Linux Mintに付属しており、うまく動作します。 parted と gparted は 2 番目のパーティションの縮小に失敗しましたが、 gnome-disks は 1 回の操作で fs とパーティションのサイズの両方を正常に調整しました。
fs/パーティションの縮小後、loop0p2 の後ろに空きスペースがあります。画像ファイルを縮小したい。だから私はこれをしました:
root@O3:/home/m# fdisk -l /dev/loop0
Disk /dev/loop0: 7,5 GiB, 8068792320 bytes, 15759360 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: 0x8889db7f
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/loop0p2 532480 8355839 7823360 3,7G 83 Linux
サイズを切る? (8192+524288+7823360)*512=4278190080B
truncate --size=4278190080 image-file.img
生成されたイメージファイルをLoop0に再マップした後、fs /パーティションエラーは発生しなくなりました。