Enlarge disk partition image: Difference between revisions

From WickyWiki
mNo edit summary
 
(5 intermediate revisions by the same user not shown)
Line 16: Line 16:
</syntaxhighlight>
</syntaxhighlight>


Create file of a size you want (here 4500M)
Create file of a size you want (here 4500M) check your medium [[Disk type maximum file size‎]]


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 39: Line 39:
3974103040 bytes (4,0 GB, 3,7 GiB) copied, 46,4243 s, 85,6 MB/s
3974103040 bytes (4,0 GB, 3,7 GiB) copied, 46,4243 s, 85,6 MB/s
</syntaxhighlight>
</syntaxhighlight>
Check and fix:
<syntaxhighlight lang=bash>
sudo e2fsck -f /dev/loop21
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop21: 137651/242880 files (0.2% non-contiguous), 883034/970240 blocks
</syntaxhighlight>
Start parted with the new device selected:
<syntaxhighlight lang=bash>
sudo parted /dev/loop21
</syntaxhighlight>
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop21: 4719MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number  Start  End    Size    File system  Flags
1      0,00B  4719MB  4719MB  ext4
(parted) quit


Disconnect the devices:
Disconnect the devices:
Line 77: Line 47:
</syntaxhighlight>
</syntaxhighlight>


= Fat32 max file size =
Resize the filesystem to available space:


Files on a Fat32 partition have a maximum size of 4GB. If you try to copy a larger file to a Fat32 system you may not always receive a warning beforehand (like when copying over a network). Then it will fail with a disk I/O error at the size limit without explanation.
<syntaxhighlight lang=bash>
resize2fs -f new_partition.img


Too be exact, the limit is:
  Resizing the filesystem on new_partition.img to 1152000 (4k) blocks.
  The filesystem on new_partition.img is now 1152000 (4k) blocks long.
</syntaxhighlight>


4 GiB - 2 bytes = 4 * 1024 * 1024 * 1024 - 2 = 4,294,967,294 bytes
Check and allow the tool to fix errors:


If we want 512-byte blocks the maximum is:
<syntaxhighlight lang=bash>
e2fsck -f new_partition.img
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(531654--531655) -(532478--532479) -(857474--858485)
Fix<y>? yes
Free blocks count wrong for group #16 (815, counted=819).
Fix<y>? yes
</syntaxhighlight>


4,294,967,294 / 512 rounds down to 8,388,607 blocks of 512 bytes.
= See also =


<syntaxhighlight lang=bash>
* [[Disk type maximum file size‎]]
dd bs=512 count=8388607 if=/dev/zero of=new_partition.img
* [[Shrink disk partition image]]
</syntaxhighlight>

Latest revision as of 22:13, 20 December 2018


Source:

Create a device for the original image, note the /dev/loop20:

sudo losetup -f --show org_partition.img

	/dev/loop20

Create file of a size you want (here 4500M) check your medium Disk type maximum file size‎

dd bs=1M count=4500 if=/dev/zero of=new_partition.img

Create a device for the image, again, note the new /dev/loop21

sudo losetup -f --show new_partition.img

	/dev/loop21

Copy data from the original image to the empty image, if=source, of=destination (PROCEED WITH CAUTION):

sudo dd if=/dev/loop20 of=/dev/loop21

	7761920+0 records in
	7761920+0 records out
	3974103040 bytes (4,0 GB, 3,7 GiB) copied, 46,4243 s, 85,6 MB/s

Disconnect the devices:

	 
sudo losetup -d /dev/loop20
sudo losetup -d /dev/loop21

Resize the filesystem to available space:

	 
resize2fs -f new_partition.img

  Resizing the filesystem on new_partition.img to 1152000 (4k) blocks.
  The filesystem on new_partition.img is now 1152000 (4k) blocks long.

Check and allow the tool to fix errors:

e2fsck -f new_partition.img
 
 Pass 1: Checking inodes, blocks, and sizes
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
 Block bitmap differences:  -(531654--531655) -(532478--532479) -(857474--858485)
 Fix<y>? yes
 Free blocks count wrong for group #16 (815, counted=819).
 Fix<y>? yes

See also