Switch image generation from GNU Make to GNU Bash
Should have been done long time ago.
This commit is contained in:
parent
bbc42c6436
commit
eb243bf14f
829
img/gen.sh
Executable file
829
img/gen.sh
Executable file
@ -0,0 +1,829 @@
|
||||
#!/bin/bash
|
||||
|
||||
RANDDIR=../tools/randdir
|
||||
MKDOUBLEDIRS=../tools/mkdoubledirs
|
||||
MKFILEPATTERN=../tools/mkfilepattern
|
||||
DIRTOTEST=../tools/dirtotest.py
|
||||
MKSAMEHASH=../tools/mksamehash
|
||||
MKDIRRANGE=../tools/mkdirrange
|
||||
XFS_MIN_PART_SIZE="300MiB"
|
||||
XFS_MKFS_OPTS="-q -i maxpct=0"
|
||||
XFS_MOUNT_OPTS="-t xfs"
|
||||
FAT_MOUNT_OPTS="umask=111,dmask=000"
|
||||
QCOW2_OPTS="compat=v3,compression_type=zlib,encryption=off,extended_l2=off,preallocation=off"
|
||||
NBD_DEV=/dev/nbd0 # FIXME
|
||||
|
||||
gpt_large.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
qemu-img create -f qcow2 -o $QCOW2_OPTS,cluster_size=2097152 $img 2E > /dev/null
|
||||
sudo qemu-nbd -c $NBD_DEV $img
|
||||
sudo parted --script --align optimal $NBD_DEV mktable gpt \
|
||||
mkpart part0 1MiB 1GiB \
|
||||
mkpart part1 1GiB 1TiB \
|
||||
mkpart part2 1TiB 1024TiB \
|
||||
mkpart part3 1024TiB 1048576TiB
|
||||
sudo qemu-nbd -d $NBD_DEV > /dev/null
|
||||
}
|
||||
|
||||
gpt_partitions_s05k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
fallocate -l 1GiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable gpt \
|
||||
mkpart part0 1MiB 2MiB \
|
||||
mkpart part1 2MiB 3MiB \
|
||||
mkpart part2 4MiB 5MiB \
|
||||
mkpart part3 3MiB 4MiB \
|
||||
mkpart part4 5MiB 6MiB \
|
||||
mkpart part5 6MiB 7MiB \
|
||||
mkpart part6 7MiB 8MiB \
|
||||
mkpart part7 8MiB 9MiB \
|
||||
mkpart part8 9MiB 10MiB \
|
||||
mkpart part9 10MiB 11MiB \
|
||||
mkpart part10 11MiB 12MiB \
|
||||
mkpart part11 12MiB 13MiB \
|
||||
mkpart part12 13MiB 14MiB \
|
||||
mkpart part13 14MiB 15MiB \
|
||||
mkpart part14 15MiB 16MiB \
|
||||
mkpart part15 16MiB 17MiB \
|
||||
mkpart part16 17MiB 18MiB \
|
||||
mkpart part17 18MiB 19MiB \
|
||||
mkpart part18 19MiB 20MiB \
|
||||
mkpart part19 20MiB 21MiB \
|
||||
mkpart part20 21MiB 22MiB \
|
||||
mkpart part21 22MiB 23MiB \
|
||||
mkpart part22 23MiB 24MiB \
|
||||
mkpart part23 24MiB 25MiB
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
gpt_partitions_s4k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
fallocate -l 1GiB $img_raw
|
||||
sudo losetup -b 4096 $LOOP_DEV $img_raw
|
||||
sudo parted --script --align optimal $LOOP_DEV mktable gpt \
|
||||
mkpart part0 1MiB 2MiB \
|
||||
mkpart part1 2MiB 3MiB \
|
||||
mkpart part2 4MiB 5MiB \
|
||||
mkpart part3 3MiB 4MiB \
|
||||
mkpart part4 5MiB 6MiB \
|
||||
mkpart part5 6MiB 7MiB \
|
||||
mkpart part6 7MiB 8MiB \
|
||||
mkpart part7 8MiB 9MiB \
|
||||
mkpart part8 9MiB 10MiB \
|
||||
mkpart part9 10MiB 11MiB \
|
||||
mkpart part10 11MiB 12MiB \
|
||||
mkpart part11 12MiB 13MiB \
|
||||
mkpart part12 13MiB 14MiB \
|
||||
mkpart part13 14MiB 15MiB \
|
||||
mkpart part14 15MiB 16MiB \
|
||||
mkpart part15 16MiB 17MiB \
|
||||
mkpart part16 17MiB 18MiB \
|
||||
mkpart part17 18MiB 19MiB \
|
||||
mkpart part18 19MiB 20MiB \
|
||||
mkpart part19 20MiB 21MiB \
|
||||
mkpart part20 21MiB 22MiB \
|
||||
mkpart part21 22MiB 23MiB \
|
||||
mkpart part22 23MiB 24MiB \
|
||||
mkpart part23 24MiB 25MiB
|
||||
sudo losetup -d $LOOP_DEV
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
kolibri.raw () {
|
||||
local img=$FUNCNAME
|
||||
touch $img
|
||||
fallocate -z -o 0 -l 1440KiB $img
|
||||
mkfs.fat -n KOLIBRIOS -F 12 $img > /dev/null
|
||||
mcopy -moi $img ../default.skn ::DEFAULT.SKN
|
||||
mcopy -moi $img ../fill.cur ::FILL.CUR
|
||||
mcopy -moi $img ../spray.cur ::SPRAY.CUR
|
||||
mcopy -moi $img ../apps/board_cycle ::LOADER
|
||||
mmd -i $img ::LIB
|
||||
mcopy -moi $img ../network.obj ::LIB/NETWORK.OBJ
|
||||
}
|
||||
|
||||
jfs.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
fallocate -l 16MiB $img_raw
|
||||
mkfs.jfs -q $img_raw > /dev/null
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_lookup_v4.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l 10GiB $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -m crc=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_sf
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_sf d 5
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_block
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_block d 50
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_leaf
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_leaf d 500
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_node
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_node d 2000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1a
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l1a d 5000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1b
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l1b d 50000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1c
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l1c d 500000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l2
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l2 d 2000000
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_lookup_v5.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l 10GiB $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -m crc=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_sf
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_sf d 5
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_block
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_block d 50
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_leaf
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_leaf d 500
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_node
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_node d 2000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1a
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l1a d 5000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1b
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l1b d 50000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1c
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l1c d 500000
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l2
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_btree_l2 d 2000000
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_nrext64.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l 3000MiB $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -i nrext64=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_sf
|
||||
$MKDIRRANGE $TEMP_DIR/dir_sf 0 3 0 2
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_block
|
||||
$MKDIRRANGE $TEMP_DIR/dir_block 0 5 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_leaf
|
||||
$MKDIRRANGE $TEMP_DIR/dir_leaf 0 50 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_node
|
||||
$MKDIRRANGE $TEMP_DIR/dir_node 0 1000 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l1
|
||||
$MKDIRRANGE $TEMP_DIR/dir_btree_l1 0 5000 231 13
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l2
|
||||
$MKDIRRANGE $TEMP_DIR/dir_btree_l2 0 1000000 231 13
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_bigtime.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -m bigtime=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/dira
|
||||
mkdir $TEMP_DIR/dirb
|
||||
mkdir $TEMP_DIR/dirc
|
||||
mkdir $TEMP_DIR/dird
|
||||
mkdir $TEMP_DIR/dire
|
||||
mkdir $TEMP_DIR/dirf
|
||||
touch -a -t 200504031122.33 $TEMP_DIR/dira
|
||||
touch -m -t 200504031122.44 $TEMP_DIR/dira
|
||||
touch -a -t 199504031122.33 $TEMP_DIR/dirb
|
||||
touch -m -t 203504031122.44 $TEMP_DIR/dirb
|
||||
touch -a -t 197504031122.33 $TEMP_DIR/dirc
|
||||
touch -m -t 207504031122.44 $TEMP_DIR/dirc
|
||||
touch -a -t 192504031122.33 $TEMP_DIR/dird
|
||||
touch -m -t 210504031122.44 $TEMP_DIR/dird
|
||||
touch -a -t 190004031122.33 $TEMP_DIR/dire
|
||||
touch -m -t 220504031122.44 $TEMP_DIR/dire
|
||||
touch -a -t 180004031122.33 $TEMP_DIR/dirf
|
||||
touch -m -t 220504031122.44 $TEMP_DIR/dirf
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_borg_bit.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -n version=ci $img_raw
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_short_dir_i8.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
echo -en "\x00" > $img_raw
|
||||
fallocate -i -o 0 -l 42TiB $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i size=256 -n size=8k,ftype=0 $img_raw
|
||||
#
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 5 0 244
|
||||
#
|
||||
$MKDIRRANGE $TEMP_DIR/sf/d0000000002_xx 7 10 0 244
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable gpt
|
||||
parted --script --align optimal $img_raw mkpart part0 1MiB 99%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_ftype0_s05k_b2k_n8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf_empty
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 3 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/block
|
||||
$MKDIRRANGE $TEMP_DIR/block 0 5 234 10
|
||||
#
|
||||
mkdir $TEMP_DIR/leaf
|
||||
$MKDIRRANGE $TEMP_DIR/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $TEMP_DIR/node
|
||||
$MKDIRRANGE $TEMP_DIR/node 0 1100 0 23
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf_free
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_ftype1_s05k_b2k_n8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf_empty
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 3 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/block
|
||||
$MKDIRRANGE $TEMP_DIR/block 0 5 234 10
|
||||
#
|
||||
mkdir $TEMP_DIR/leaf
|
||||
$MKDIRRANGE $TEMP_DIR/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $TEMP_DIR/node
|
||||
$MKDIRRANGE $TEMP_DIR/node 0 1100 0 23
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf_free
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_xattr.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n ftype=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR -o attr2
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 900 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/leaf
|
||||
$MKDIRRANGE $TEMP_DIR/leaf 0 600 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/node
|
||||
$MKDIRRANGE $TEMP_DIR/node 0 600 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/btree
|
||||
$MKDIRRANGE $TEMP_DIR/btree 0 600 0 244
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_btrees_l2.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=1k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=4k,ftype=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/dir_btree_l2
|
||||
$MKDIRRANGE $TEMP_DIR/dir_btree_l2 0 193181 214 30
|
||||
#
|
||||
fallocate -l 4KiB $TEMP_DIR/file_btree_l2
|
||||
for n in $(seq 1 4000); do
|
||||
fallocate -i -l 4KiB -o 0KiB $TEMP_DIR/file_btree_l2
|
||||
fallocate -z -l 4KiB -o 0KiB $TEMP_DIR/file_btree_l2
|
||||
done
|
||||
$MKFILEPATTERN $TEMP_DIR/file_btree_l2 0 16388096
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_files_s05k_b4k_n8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=4k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/no_hole 0 65536
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/hole_begin 0 65536
|
||||
fallocate -p -o 0 -l 16KiB $TEMP_DIR/hole_begin
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/hole_middle 0 65536
|
||||
fallocate -p -o 32KiB -l 16KiB $TEMP_DIR/hole_middle
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/hole_end 0 65536
|
||||
fallocate -p -o 48KiB -l 16KiB $TEMP_DIR/hole_end
|
||||
#
|
||||
fallocate -l 4KiB $TEMP_DIR/btree_l1_no_hole
|
||||
for n in $(seq 1 2000); do
|
||||
fallocate -i -l 4KiB -o 0KiB $TEMP_DIR/btree_l1_no_hole
|
||||
fallocate -z -l 4KiB -o 0KiB $TEMP_DIR/btree_l1_no_hole
|
||||
done
|
||||
$MKFILEPATTERN $TEMP_DIR/btree_l1_no_hole 0 8196096
|
||||
#
|
||||
# fallocate -l 5GiB $TEMP_DIR/4GiB_plus
|
||||
$MKFILEPATTERN $TEMP_DIR/4GiB_plus 0x120008000 0x1000
|
||||
$MKFILEPATTERN $TEMP_DIR/4GiB_plus 0x120000000 0x4000
|
||||
$MKFILEPATTERN $TEMP_DIR/4GiB_plus 0xffffe000 0x4000
|
||||
$MKFILEPATTERN $TEMP_DIR/4GiB_plus 0x4000 0x4000
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_ftype0_s4k_b4k_n8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=4k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=4k -n size=8k,ftype=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf_empty
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 3 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/block
|
||||
$MKDIRRANGE $TEMP_DIR/block 0 5 234 10
|
||||
#
|
||||
mkdir $TEMP_DIR/leaf
|
||||
$MKDIRRANGE $TEMP_DIR/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $TEMP_DIR/node
|
||||
$MKDIRRANGE $TEMP_DIR/node 0 1100 0 23
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf_free
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
sudo losetup -b 4096 $LOOP_DEV $img_raw
|
||||
sudo parted --script --align optimal $LOOP_DEV mktable msdos \
|
||||
mkpart primary 1MiB 100%
|
||||
sudo losetup -d $LOOP_DEV
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_ftype0_s05k_b2k_n8k_xattr.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf_empty
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/sf_empty
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 3 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/block
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/block
|
||||
$MKDIRRANGE $TEMP_DIR/block 0 5 234 10
|
||||
#
|
||||
mkdir $TEMP_DIR/leaf
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/leaf
|
||||
$MKDIRRANGE $TEMP_DIR/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $TEMP_DIR/node
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/node
|
||||
$MKDIRRANGE $TEMP_DIR/node 0 1020 0 23
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/btree_leaf
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf_free
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $TEMP_DIR/btree_leaf_free
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v4_unicode.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -m crc=0,finobt=0,rmapbt=0,reflink=0 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir -p $TEMP_DIR/dir0
|
||||
mkdir -p $TEMP_DIR/дир❦/дир11
|
||||
mkdir -p $TEMP_DIR/❦❦❦/д❦р22
|
||||
mkdir -p $TEMP_DIR/❦👩❦/
|
||||
mkdir -p $TEMP_DIR/❦👩❦/👩❦❦/
|
||||
mkdir -p $TEMP_DIR/❦👩❦/❦👩❦/
|
||||
mkdir -p $TEMP_DIR/❦👩❦/❦❦👩/
|
||||
mkdir $TEMP_DIR/дир3/
|
||||
#
|
||||
echo hello_world > $TEMP_DIR/dir0/file00
|
||||
echo привет❦мир > $TEMP_DIR/❦❦❦/д❦р22/❦❦
|
||||
echo привет💗мир > $TEMP_DIR/❦❦❦/д❦р22/💗💗
|
||||
echo привет❦💗мир > $TEMP_DIR/дир3/файл33
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v5_ftype1_s05k_b2k_n8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=2k -m crc=1,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
mkdir $TEMP_DIR/sf_empty
|
||||
#
|
||||
mkdir $TEMP_DIR/sf
|
||||
$MKDIRRANGE $TEMP_DIR/sf 0 3 0 244
|
||||
#
|
||||
mkdir $TEMP_DIR/block
|
||||
$MKDIRRANGE $TEMP_DIR/block 0 5 234 10
|
||||
#
|
||||
mkdir $TEMP_DIR/leaf
|
||||
$MKDIRRANGE $TEMP_DIR/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $TEMP_DIR/node
|
||||
$MKDIRRANGE $TEMP_DIR/node 0 1100 0 23
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $TEMP_DIR/btree_leaf_free
|
||||
$MKDIRRANGE $TEMP_DIR/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
xfs_v5_files_s05k_b4k_n8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.xfs $XFS_MKFS_OPTS -b size=4k -m crc=1,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=1 $img_raw
|
||||
sudo mount $XFS_MOUNT_OPTS $img_raw $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/no_hole 0 65536
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/hole_begin 0 65536
|
||||
fallocate -p -o 0 -l 16KiB $TEMP_DIR/hole_begin
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/hole_middle 0 65536
|
||||
fallocate -p -o 32KiB -l 16KiB $TEMP_DIR/hole_middle
|
||||
#
|
||||
$MKFILEPATTERN $TEMP_DIR/hole_end 0 65536
|
||||
fallocate -p -o 48KiB -l 16KiB $TEMP_DIR/hole_end
|
||||
#
|
||||
fallocate -l 4KiB $TEMP_DIR/btree_l1_no_hole
|
||||
for n in $(seq 1 2000); do
|
||||
fallocate -i -l 4KiB -o 0KiB $TEMP_DIR/btree_l1_no_hole
|
||||
fallocate -z -l 4KiB -o 0KiB $TEMP_DIR/btree_l1_no_hole
|
||||
done
|
||||
$MKFILEPATTERN $TEMP_DIR/btree_l1_no_hole 0 8196096
|
||||
#
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
fat32_test0.raw () {
|
||||
local img=$FUNCNAME
|
||||
fallocate -l 64MiB $img
|
||||
mkfs.fat -n KOLIBRIOS -F 32 $img > /dev/null
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $img $TEMP_DIR
|
||||
$RANDDIR $TEMP_DIR 1000 8 255 65536
|
||||
$DIRTOTEST $TEMP_DIR $img hd0 > "../test/045_#f70_#fat32_test0.t"
|
||||
tree $TEMP_DIR
|
||||
du -sh $TEMP_DIR
|
||||
sudo umount $TEMP_DIR
|
||||
}
|
||||
|
||||
exfat_s05k_c16k_b16k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.exfat -L KOLIBRIOS -c 16k -b 16k $img_raw > /dev/null
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $img_raw $TEMP_DIR
|
||||
mkdir $TEMP_DIR/dir_0
|
||||
mkdir $TEMP_DIR/dir_1
|
||||
touch $TEMP_DIR/dir_1/file000
|
||||
mkdir $TEMP_DIR/dir_1000
|
||||
$MKDIRRANGE $TEMP_DIR/dir_1000 0 1000 201 43
|
||||
mkdir $TEMP_DIR/dir_10000
|
||||
$MKDIRRANGE $TEMP_DIR/dir_10000 0 10000 201 43
|
||||
# mkdir $TEMP_DIR/dir_100000
|
||||
# $MKDIRRANGE $TEMP_DIR/dir_100000 0 100000 201 43
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
exfat_s05k_c8k_b8k.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
fallocate -l $XFS_MIN_PART_SIZE $img_raw
|
||||
mkfs.exfat -L KOLIBRIOS -c 8k -b 8k $img_raw > /dev/null
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $img_raw $TEMP_DIR
|
||||
mkdir $TEMP_DIR/dir_000
|
||||
echo -n '' > $TEMP_DIR/dir_000/file_000
|
||||
mkdir $TEMP_DIR/dir_001
|
||||
echo -n 'x' > $TEMP_DIR/dir_001/file_001
|
||||
mkdir $TEMP_DIR/dir_002
|
||||
echo -n 'x' > $TEMP_DIR/dir_002/file_002
|
||||
mkdir $TEMP_DIR/dir_003
|
||||
echo -n 'x' > $TEMP_DIR/dir_003/file_003
|
||||
mkdir $TEMP_DIR/dir_004
|
||||
echo -n 'x' > $TEMP_DIR/dir_004/file_004
|
||||
mkdir $TEMP_DIR/dir_005
|
||||
echo -n 'x' > $TEMP_DIR/dir_005/file_005
|
||||
mkdir $TEMP_DIR/dir_006
|
||||
echo -n 'x' > $TEMP_DIR/dir_006/file_006
|
||||
mkdir $TEMP_DIR/dir_007
|
||||
echo -n 'x' > $TEMP_DIR/dir_007/file_007
|
||||
mkdir $TEMP_DIR/dir_008
|
||||
echo -n 'x' > $TEMP_DIR/dir_008/file_008
|
||||
mkdir $TEMP_DIR/dir_009
|
||||
echo -n 'x' > $TEMP_DIR/dir_009/file_009
|
||||
mkdir $TEMP_DIR/dir_010
|
||||
echo -n 'x' > $TEMP_DIR/dir_010/file_010
|
||||
mkdir $TEMP_DIR/dir_011
|
||||
echo -n 'x' > $TEMP_DIR/dir_011/file_011
|
||||
mkdir $TEMP_DIR/dir_012
|
||||
echo -n 'x' > $TEMP_DIR/dir_012/file_012
|
||||
mkdir $TEMP_DIR/dir_013
|
||||
echo -n 'x' > $TEMP_DIR/dir_013/file_013
|
||||
mkdir $TEMP_DIR/dir_014
|
||||
echo -n 'x' > $TEMP_DIR/dir_014/file_014
|
||||
mkdir $TEMP_DIR/dir_015
|
||||
echo -n 'x' > $TEMP_DIR/dir_015/file_015
|
||||
mkdir $TEMP_DIR/dir_016
|
||||
echo -n 'x' > $TEMP_DIR/dir_016/file_016
|
||||
mkdir $TEMP_DIR/dir_017
|
||||
echo -n 'x' > $TEMP_DIR/dir_017/file_017
|
||||
mkdir $TEMP_DIR/dir_018
|
||||
echo -n 'x' > $TEMP_DIR/dir_018/file_018
|
||||
mkdir $TEMP_DIR/dir_019
|
||||
echo -n 'x' > $TEMP_DIR/dir_019/file_019
|
||||
mkdir $TEMP_DIR/dir_020
|
||||
echo -n 'x' > $TEMP_DIR/dir_020/file_020
|
||||
mkdir $TEMP_DIR/dir_021
|
||||
echo -n 'x' > $TEMP_DIR/dir_021/file_021
|
||||
mkdir $TEMP_DIR/dir_022
|
||||
echo -n 'x' > $TEMP_DIR/dir_022/file_022
|
||||
mkdir $TEMP_DIR/dir_023
|
||||
echo -n 'x' > $TEMP_DIR/dir_023/file_023
|
||||
mkdir $TEMP_DIR/dir_024
|
||||
echo -n 'x' > $TEMP_DIR/dir_024/file_024
|
||||
mkdir $TEMP_DIR/dir_025
|
||||
echo -n 'x' > $TEMP_DIR/dir_025/file_025
|
||||
mkdir $TEMP_DIR/dir_026
|
||||
echo -n 'x' > $TEMP_DIR/dir_026/file_026
|
||||
mkdir $TEMP_DIR/dir_027
|
||||
echo -n 'x' > $TEMP_DIR/dir_027/file_027
|
||||
mkdir $TEMP_DIR/dir_028
|
||||
echo -n 'x' > $TEMP_DIR/dir_028/file_028
|
||||
mkdir $TEMP_DIR/dir_029
|
||||
echo -n 'x' > $TEMP_DIR/dir_029/file_029
|
||||
mkdir $TEMP_DIR/dir_030
|
||||
echo -n 'x' > $TEMP_DIR/dir_030/file_030
|
||||
mkdir $TEMP_DIR/dir_031
|
||||
echo -n 'x' > $TEMP_DIR/dir_031/file_031
|
||||
sudo umount $TEMP_DIR
|
||||
fallocate -i -o 0 -l 1MiB $img_raw
|
||||
parted --script --align optimal $img_raw mktable msdos
|
||||
parted --script --align optimal $img_raw mkpart primary 1MiB 100%
|
||||
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
images=(gpt_large.qcow2 gpt_partitions_s05k.qcow2 gpt_partitions_s4k.qcow2
|
||||
kolibri.raw jfs.qcow2 xfs_lookup_v4.qcow2 xfs_lookup_v5.qcow2
|
||||
xfs_nrext64.qcow2 xfs_bigtime.qcow2 xfs_borg_bit.qcow2
|
||||
xfs_short_dir_i8.qcow2 xfs_v4_ftype0_s05k_b2k_n8k.qcow2
|
||||
xfs_v4_ftype1_s05k_b2k_n8k.qcow2 xfs_v4_xattr.qcow2
|
||||
xfs_v4_btrees_l2.qcow2 xfs_v4_files_s05k_b4k_n8k.qcow2
|
||||
xfs_v4_ftype0_s4k_b4k_n8k.qcow2 xfs_v4_ftype0_s05k_b2k_n8k_xattr.qcow2
|
||||
xfs_v4_unicode.qcow2 xfs_v5_ftype1_s05k_b2k_n8k.qcow2
|
||||
xfs_v5_files_s05k_b4k_n8k.qcow2 fat32_test0.raw
|
||||
exfat_s05k_c16k_b16k.qcow2 exfat_s05k_c8k_b8k.qcow2)
|
||||
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
LOOP_DEV=$(losetup --find)
|
||||
|
||||
for image in ${images[*]}; do
|
||||
if [ -f "$image" ]; then
|
||||
echo "skipping $image"
|
||||
continue
|
||||
else
|
||||
echo "generate $image"
|
||||
$image
|
||||
fi
|
||||
done
|
||||
|
||||
sudo umount -q $TEMP_DIR
|
||||
rmdir $TEMP_DIR
|
674
img/makefile
674
img/makefile
@ -1,674 +0,0 @@
|
||||
RANDDIR=../tools/randdir
|
||||
MKDIRRANGE=../tools/mkdirrange
|
||||
MKDOUBLEDIRS=../tools/mkdoubledirs
|
||||
MKFILEPATTERN=../tools/mkfilepattern
|
||||
DIRTOTEST=python3 ../tools/dirtotest.py
|
||||
XFS_MOUNT_OPT=-t xfs
|
||||
TEMP_DIR:=$(shell mktemp -d)
|
||||
LOOP_DEV=$(shell losetup --find)
|
||||
NBD_DEV=/dev/nbd0
|
||||
XFS_MIN_PART_SIZE=300MiB
|
||||
QCOW2_OPTS=compat=v3,compression_type=zlib,encryption=off,extended_l2=off,preallocation=off
|
||||
|
||||
all: s05k s4k unicode v5 kolibri.raw fat32_test0.raw coverage gpt
|
||||
rmdir $(TEMP_DIR)
|
||||
|
||||
s05k: xfs_v4_ftype0_s05k_b2k_n8k.qcow2 xfs_v4_ftype1_s05k_b2k_n8k.qcow2 \
|
||||
xfs_v4_xattr.qcow2 xfs_v4_files_s05k_b4k_n8k.qcow2 \
|
||||
xfs_v4_ftype0_s05k_b2k_n8k_xattr.qcow2 xfs_v4_btrees_l2.qcow2 \
|
||||
xfs_short_dir_i8.qcow2 exfat_s05k_c8k_b8k.qcow2 \
|
||||
exfat_s05k_c16k_b16k.qcow2 gpt_partitions_s05k.qcow2
|
||||
|
||||
s4k: xfs_v4_ftype0_s4k_b4k_n8k.qcow2 gpt_partitions_s4k.qcow2
|
||||
|
||||
unicode: xfs_v4_unicode.qcow2
|
||||
|
||||
v5: xfs_v5_ftype1_s05k_b2k_n8k.qcow2 xfs_v5_files_s05k_b4k_n8k.qcow2 \
|
||||
xfs_bigtime.qcow2 xfs_nrext64.qcow2 xfs_lookup_v5.qcow2 xfs_lookup_v4.qcow2
|
||||
|
||||
coverage: jfs.qcow2 xfs_borg_bit.qcow2 xfs_short_dir_i8.qcow2
|
||||
|
||||
gpt: gpt_partitions_s05k.qcow2 gpt_partitions_s4k.qcow2 gpt_large.qcow2
|
||||
|
||||
%.qcow2: %.raw
|
||||
qemu-img convert -m 2 -O qcow2 -o $(QCOW2_OPTS) $< $@
|
||||
rm $<
|
||||
|
||||
gpt_large.qcow2:
|
||||
qemu-img create -f qcow2 -o $(QCOW2_OPTS),cluster_size=2097152 $@ 2E
|
||||
sudo qemu-nbd -c $(NBD_DEV) $@
|
||||
sudo parted --script --align optimal $(NBD_DEV) mktable gpt \
|
||||
mkpart part0 1MiB 1GiB \
|
||||
mkpart part1 1GiB 1TiB \
|
||||
mkpart part2 1TiB 1024TiB \
|
||||
mkpart part3 1024TiB 1048576TiB
|
||||
sudo qemu-nbd -d $(NBD_DEV)
|
||||
|
||||
gpt_partitions_s05k.raw:
|
||||
fallocate -l 1GiB $@
|
||||
parted --script --align optimal $@ mktable gpt \
|
||||
mkpart part0 1MiB 2MiB \
|
||||
mkpart part1 2MiB 3MiB \
|
||||
mkpart part2 4MiB 5MiB \
|
||||
mkpart part3 3MiB 4MiB \
|
||||
mkpart part4 5MiB 6MiB \
|
||||
mkpart part5 6MiB 7MiB \
|
||||
mkpart part6 7MiB 8MiB \
|
||||
mkpart part7 8MiB 9MiB \
|
||||
mkpart part8 9MiB 10MiB \
|
||||
mkpart part9 10MiB 11MiB \
|
||||
mkpart part10 11MiB 12MiB \
|
||||
mkpart part11 12MiB 13MiB \
|
||||
mkpart part12 13MiB 14MiB \
|
||||
mkpart part13 14MiB 15MiB \
|
||||
mkpart part14 15MiB 16MiB \
|
||||
mkpart part15 16MiB 17MiB \
|
||||
mkpart part16 17MiB 18MiB \
|
||||
mkpart part17 18MiB 19MiB \
|
||||
mkpart part18 19MiB 20MiB \
|
||||
mkpart part19 20MiB 21MiB \
|
||||
mkpart part20 21MiB 22MiB \
|
||||
mkpart part21 22MiB 23MiB \
|
||||
mkpart part22 23MiB 24MiB \
|
||||
mkpart part23 24MiB 25MiB
|
||||
|
||||
gpt_partitions_s4k.raw:
|
||||
fallocate -l 1GiB $@
|
||||
sudo losetup -b 4096 $(LOOP_DEV) $@
|
||||
sudo parted --script --align optimal $(LOOP_DEV) mktable gpt \
|
||||
mkpart part0 1MiB 2MiB \
|
||||
mkpart part1 2MiB 3MiB \
|
||||
mkpart part2 4MiB 5MiB \
|
||||
mkpart part3 3MiB 4MiB \
|
||||
mkpart part4 5MiB 6MiB \
|
||||
mkpart part5 6MiB 7MiB \
|
||||
mkpart part6 7MiB 8MiB \
|
||||
mkpart part7 8MiB 9MiB \
|
||||
mkpart part8 9MiB 10MiB \
|
||||
mkpart part9 10MiB 11MiB \
|
||||
mkpart part10 11MiB 12MiB \
|
||||
mkpart part11 12MiB 13MiB \
|
||||
mkpart part12 13MiB 14MiB \
|
||||
mkpart part13 14MiB 15MiB \
|
||||
mkpart part14 15MiB 16MiB \
|
||||
mkpart part15 16MiB 17MiB \
|
||||
mkpart part16 17MiB 18MiB \
|
||||
mkpart part17 18MiB 19MiB \
|
||||
mkpart part18 19MiB 20MiB \
|
||||
mkpart part19 20MiB 21MiB \
|
||||
mkpart part20 21MiB 22MiB \
|
||||
mkpart part21 22MiB 23MiB \
|
||||
mkpart part22 23MiB 24MiB \
|
||||
mkpart part23 24MiB 25MiB
|
||||
sudo losetup -d $(LOOP_DEV)
|
||||
|
||||
kolibri.raw: ../default.skn ../fill.cur
|
||||
touch $@
|
||||
fallocate -z -o 0 -l 1440KiB $@
|
||||
mkfs.vfat -n KOLIBRIOS -F 12 $@
|
||||
mcopy -vmoi $@ ../default.skn ::DEFAULT.SKN
|
||||
mcopy -vmoi $@ ../fill.cur ::FILL.CUR
|
||||
mcopy -vmoi $@ ../spray.cur ::SPRAY.CUR
|
||||
mcopy -vmoi $@ ../apps/board_cycle ::LOADER
|
||||
mmd -i $@ ::LIB
|
||||
mcopy -vmoi $@ ../network.obj ::LIB/NETWORK.OBJ
|
||||
|
||||
jfs.raw:
|
||||
fallocate -l 16MiB $@
|
||||
mkfs.jfs -q $@
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_lookup_v4.raw:
|
||||
fallocate -l 10GiB $@
|
||||
mkfs.xfs -m crc=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_sf
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_sf d 5
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_block
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_block d 50
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_leaf
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_leaf d 500
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_node
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_node d 2000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1a
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l1a d 5000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1b
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l1b d 50000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1c
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l1c d 500000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l2
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l2 d 2000000
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_lookup_v5.raw:
|
||||
fallocate -l 10GiB $@
|
||||
mkfs.xfs -m crc=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_sf
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_sf d 5
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_block
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_block d 50
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_leaf
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_leaf d 500
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_node
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_node d 2000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1a
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l1a d 5000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1b
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l1b d 50000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1c
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l1c d 500000
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l2
|
||||
$(MKDOUBLEDIRS) $(TEMP_DIR)/dir_btree_l2 d 2000000
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_nrext64.raw:
|
||||
fallocate -l 3000MiB $@
|
||||
mkfs.xfs -i nrext64=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_sf 0 3 0 2
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_block
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_block 0 5 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_leaf 0 50 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_node 0 1000 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l1
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_btree_l1 0 5000 231 13
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l2
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_btree_l2 0 1000000 231 13
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_bigtime.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -m bigtime=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dira
|
||||
mkdir $(TEMP_DIR)/dirb
|
||||
mkdir $(TEMP_DIR)/dirc
|
||||
mkdir $(TEMP_DIR)/dird
|
||||
mkdir $(TEMP_DIR)/dire
|
||||
mkdir $(TEMP_DIR)/dirf
|
||||
touch -a -t 200504031122.33 $(TEMP_DIR)/dira
|
||||
touch -m -t 200504031122.44 $(TEMP_DIR)/dira
|
||||
touch -a -t 199504031122.33 $(TEMP_DIR)/dirb
|
||||
touch -m -t 203504031122.44 $(TEMP_DIR)/dirb
|
||||
touch -a -t 197504031122.33 $(TEMP_DIR)/dirc
|
||||
touch -m -t 207504031122.44 $(TEMP_DIR)/dirc
|
||||
touch -a -t 192504031122.33 $(TEMP_DIR)/dird
|
||||
touch -m -t 210504031122.44 $(TEMP_DIR)/dird
|
||||
touch -a -t 190004031122.33 $(TEMP_DIR)/dire
|
||||
touch -m -t 220504031122.44 $(TEMP_DIR)/dire
|
||||
touch -a -t 180004031122.33 $(TEMP_DIR)/dirf
|
||||
touch -m -t 220504031122.44 $(TEMP_DIR)/dirf
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_borg_bit.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -n version=ci $@
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_short_dir_i8.raw:
|
||||
echo -en "\x00" > $@
|
||||
fallocate -i -o 0 -l 42TiB $@
|
||||
mkfs.xfs -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100,size=256 -n size=8k,ftype=0 $@
|
||||
#
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 5 0 244
|
||||
#
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf/d0000000002_xx 7 10 0 244
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable gpt
|
||||
parted --script --align optimal $@ mkpart part0 1MiB 99%
|
||||
|
||||
xfs_v4_ftype0_s05k_b2k_n8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100 -n size=8k,ftype=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf_empty
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 3 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/block
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/block 0 5 234 10
|
||||
#
|
||||
mkdir $(TEMP_DIR)/leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $(TEMP_DIR)/node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/node 0 1100 0 23
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf_free
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v4_ftype1_s05k_b2k_n8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100 -n size=8k,ftype=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf_empty
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 3 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/block
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/block 0 5 234 10
|
||||
#
|
||||
mkdir $(TEMP_DIR)/leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $(TEMP_DIR)/node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/node 0 1100 0 23
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf_free
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v4_xattr.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100 -n ftype=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR) -o attr2
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 900 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/leaf 0 600 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/node 0 600 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree 0 600 0 244
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v4_btrees_l2.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=1k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100 -n size=4k,ftype=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/dir_btree_l2
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_btree_l2 0 193181 214 30
|
||||
#
|
||||
fallocate -l 4KiB $(TEMP_DIR)/file_btree_l2
|
||||
for n in $$(seq 1 4000); do \
|
||||
fallocate -i -l 4KiB -o 0KiB $(TEMP_DIR)/file_btree_l2 ; \
|
||||
fallocate -z -l 4KiB -o 0KiB $(TEMP_DIR)/file_btree_l2 ; \
|
||||
done
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/file_btree_l2 0 16388096
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v4_files_s05k_b4k_n8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=4k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/no_hole 0 65536
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/hole_begin 0 65536
|
||||
fallocate -p -o 0 -l 16KiB $(TEMP_DIR)/hole_begin
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/hole_middle 0 65536
|
||||
fallocate -p -o 32KiB -l 16KiB $(TEMP_DIR)/hole_middle
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/hole_end 0 65536
|
||||
fallocate -p -o 48KiB -l 16KiB $(TEMP_DIR)/hole_end
|
||||
#
|
||||
fallocate -l 4KiB $(TEMP_DIR)/btree_l1_no_hole
|
||||
for n in $$(seq 1 2000); do \
|
||||
fallocate -i -l 4KiB -o 0KiB $(TEMP_DIR)/btree_l1_no_hole ; \
|
||||
fallocate -z -l 4KiB -o 0KiB $(TEMP_DIR)/btree_l1_no_hole ; \
|
||||
done
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/btree_l1_no_hole 0 8196096
|
||||
#
|
||||
# fallocate -l 5GiB $(TEMP_DIR)/4GiB_plus
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/4GiB_plus 0x120008000 0x1000
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/4GiB_plus 0x120000000 0x4000
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/4GiB_plus 0xffffe000 0x4000
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/4GiB_plus 0x4000 0x4000
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v4_ftype0_s4k_b4k_n8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=4k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=4k -i maxpct=100 -n size=8k,ftype=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf_empty
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 3 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/block
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/block 0 5 234 10
|
||||
#
|
||||
mkdir $(TEMP_DIR)/leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $(TEMP_DIR)/node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/node 0 1100 0 23
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf_free
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
sudo losetup -b 4096 $(LOOP_DEV) $@
|
||||
sudo parted --script --align optimal $(LOOP_DEV) mktable msdos \
|
||||
mkpart primary 1MiB 100%
|
||||
sudo losetup -d $(LOOP_DEV)
|
||||
|
||||
xfs_v4_ftype0_s05k_b2k_n8k_xattr.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=2k -m crc=0,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100 -n size=8k,ftype=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf_empty
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/sf_empty
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 3 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/block
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/block
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/block 0 5 234 10
|
||||
#
|
||||
mkdir $(TEMP_DIR)/leaf
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $(TEMP_DIR)/node
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/node 0 1020 0 23
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/btree_leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf_free
|
||||
setfattr -n user.pew_attr_pew -v pew_value_pew $(TEMP_DIR)/btree_leaf_free
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v4_unicode.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -m crc=0,finobt=0,rmapbt=0,reflink=0 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir -p $(TEMP_DIR)/dir0
|
||||
mkdir -p $(TEMP_DIR)/дир❦/дир11
|
||||
mkdir -p $(TEMP_DIR)/❦❦❦/д❦р22
|
||||
mkdir -p $(TEMP_DIR)/❦👩❦/
|
||||
mkdir -p $(TEMP_DIR)/❦👩❦/👩❦❦/
|
||||
mkdir -p $(TEMP_DIR)/❦👩❦/❦👩❦/
|
||||
mkdir -p $(TEMP_DIR)/❦👩❦/❦❦👩/
|
||||
mkdir $(TEMP_DIR)/дир3/
|
||||
#
|
||||
echo hello_world > $(TEMP_DIR)/dir0/file00
|
||||
echo привет❦мир > $(TEMP_DIR)/❦❦❦/д❦р22/❦❦
|
||||
echo привет💗мир > $(TEMP_DIR)/❦❦❦/д❦р22/💗💗
|
||||
echo привет❦💗мир > $(TEMP_DIR)/дир3/файл33
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v5_ftype1_s05k_b2k_n8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=2k -m crc=1,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -i maxpct=100 -n size=8k,ftype=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf_empty
|
||||
#
|
||||
mkdir $(TEMP_DIR)/sf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/sf 0 3 0 244
|
||||
#
|
||||
mkdir $(TEMP_DIR)/block
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/block 0 5 234 10
|
||||
#
|
||||
mkdir $(TEMP_DIR)/leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/leaf 0 40 214 30
|
||||
#
|
||||
mkdir $(TEMP_DIR)/node
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/node 0 1100 0 23
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf 0 1000 201 43
|
||||
#
|
||||
mkdir $(TEMP_DIR)/btree_leaf_free
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/btree_leaf_free 0 1200 201 43
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
xfs_v5_files_s05k_b4k_n8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.xfs -b size=4k -m crc=1,finobt=0,rmapbt=0,reflink=0 -d sectsize=512 -n size=8k,ftype=1 $@
|
||||
sudo mount $(XFS_MOUNT_OPT) $@ $(TEMP_DIR)
|
||||
sudo chown $$USER $(TEMP_DIR) -R
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/no_hole 0 65536
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/hole_begin 0 65536
|
||||
fallocate -p -o 0 -l 16KiB $(TEMP_DIR)/hole_begin
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/hole_middle 0 65536
|
||||
fallocate -p -o 32KiB -l 16KiB $(TEMP_DIR)/hole_middle
|
||||
#
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/hole_end 0 65536
|
||||
fallocate -p -o 48KiB -l 16KiB $(TEMP_DIR)/hole_end
|
||||
#
|
||||
fallocate -l 4KiB $(TEMP_DIR)/btree_l1_no_hole
|
||||
for n in $$(seq 1 2000); do \
|
||||
fallocate -i -l 4KiB -o 0KiB $(TEMP_DIR)/btree_l1_no_hole ; \
|
||||
fallocate -z -l 4KiB -o 0KiB $(TEMP_DIR)/btree_l1_no_hole ; \
|
||||
done
|
||||
$(MKFILEPATTERN) $(TEMP_DIR)/btree_l1_no_hole 0 8196096
|
||||
#
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
fat32_test0.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.fat -n KOLIBRIOS -F 32 $@
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $@ $(TEMP_DIR)
|
||||
$(RANDDIR) $(TEMP_DIR) 1000 8 255 65536
|
||||
$(DIRTOTEST) $(TEMP_DIR) fat32_test0.raw hd0 > ../test/045_#f70_#fat32_test0.t
|
||||
tree $(TEMP_DIR)
|
||||
du -sh $(TEMP_DIR)
|
||||
sudo umount $(TEMP_DIR)
|
||||
|
||||
exfat_s05k_c16k_b16k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.exfat -L KOLIBRIOS -c 16k -b 16k $@
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $@ $(TEMP_DIR)
|
||||
mkdir $(TEMP_DIR)/dir_0
|
||||
mkdir $(TEMP_DIR)/dir_1
|
||||
touch $(TEMP_DIR)/dir_1/file000
|
||||
mkdir $(TEMP_DIR)/dir_1000
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_1000 0 1000 201 43
|
||||
mkdir $(TEMP_DIR)/dir_10000
|
||||
$(MKDIRRANGE) $(TEMP_DIR)/dir_10000 0 10000 201 43
|
||||
# mkdir $(TEMP_DIR)/dir_100000
|
||||
# $(MKDIRRANGE) $(TEMP_DIR)/dir_100000 0 100000 201 43
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
||||
exfat_s05k_c8k_b8k.raw:
|
||||
fallocate -l $(XFS_MIN_PART_SIZE) $@
|
||||
mkfs.exfat -L KOLIBRIOS -c 8k -b 8k $@
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $@ $(TEMP_DIR)
|
||||
mkdir $(TEMP_DIR)/dir_000
|
||||
echo -n '' > $(TEMP_DIR)/dir_000/file_000
|
||||
mkdir $(TEMP_DIR)/dir_001
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_001/file_001
|
||||
mkdir $(TEMP_DIR)/dir_002
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_002/file_002
|
||||
mkdir $(TEMP_DIR)/dir_003
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_003/file_003
|
||||
mkdir $(TEMP_DIR)/dir_004
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_004/file_004
|
||||
mkdir $(TEMP_DIR)/dir_005
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_005/file_005
|
||||
mkdir $(TEMP_DIR)/dir_006
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_006/file_006
|
||||
mkdir $(TEMP_DIR)/dir_007
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_007/file_007
|
||||
mkdir $(TEMP_DIR)/dir_008
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_008/file_008
|
||||
mkdir $(TEMP_DIR)/dir_009
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_009/file_009
|
||||
mkdir $(TEMP_DIR)/dir_010
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_010/file_010
|
||||
mkdir $(TEMP_DIR)/dir_011
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_011/file_011
|
||||
mkdir $(TEMP_DIR)/dir_012
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_012/file_012
|
||||
mkdir $(TEMP_DIR)/dir_013
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_013/file_013
|
||||
mkdir $(TEMP_DIR)/dir_014
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_014/file_014
|
||||
mkdir $(TEMP_DIR)/dir_015
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_015/file_015
|
||||
mkdir $(TEMP_DIR)/dir_016
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_016/file_016
|
||||
mkdir $(TEMP_DIR)/dir_017
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_017/file_017
|
||||
mkdir $(TEMP_DIR)/dir_018
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_018/file_018
|
||||
mkdir $(TEMP_DIR)/dir_019
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_019/file_019
|
||||
mkdir $(TEMP_DIR)/dir_020
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_020/file_020
|
||||
mkdir $(TEMP_DIR)/dir_021
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_021/file_021
|
||||
mkdir $(TEMP_DIR)/dir_022
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_022/file_022
|
||||
mkdir $(TEMP_DIR)/dir_023
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_023/file_023
|
||||
mkdir $(TEMP_DIR)/dir_024
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_024/file_024
|
||||
mkdir $(TEMP_DIR)/dir_025
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_025/file_025
|
||||
mkdir $(TEMP_DIR)/dir_026
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_026/file_026
|
||||
mkdir $(TEMP_DIR)/dir_027
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_027/file_027
|
||||
mkdir $(TEMP_DIR)/dir_028
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_028/file_028
|
||||
mkdir $(TEMP_DIR)/dir_029
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_029/file_029
|
||||
mkdir $(TEMP_DIR)/dir_030
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_030/file_030
|
||||
mkdir $(TEMP_DIR)/dir_031
|
||||
echo -n 'x' > $(TEMP_DIR)/dir_031/file_031
|
||||
sudo umount $(TEMP_DIR)
|
||||
fallocate -i -o 0 -l 1MiB $@
|
||||
parted --script --align optimal $@ mktable msdos
|
||||
parted --script --align optimal $@ mkpart primary 1MiB 100%
|
||||
|
@ -1,7 +1,7 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/fat32_test0.raw hd0 -c 0
|
||||
/hd0: sector_size=512, capacity=614400 (300 MiB), num_partitions=1
|
||||
/hd0/1: fs=fat, start=0 (0 EiB), length=614376 (307188 kiB)
|
||||
/hd0: sector_size=512, capacity=131072 (64 MiB), num_partitions=1
|
||||
/hd0/1: fs=fat, start=0 (0 EiB), length=131072 (64 MiB)
|
||||
/> ls80 /hd0/1/
|
||||
status = 0 success, count = 100
|
||||
total = 107
|
||||
|
2
tools/dirtotest.py
Normal file → Executable file
2
tools/dirtotest.py
Normal file → Executable file
@ -1,3 +1,5 @@
|
||||
#!/bin/env python3
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#
|
||||
# UMKa - User-Mode KolibriOS developer tools
|
||||
|
@ -92,11 +92,11 @@ main(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
if (infile && !freopen(infile, "r", stdin)) {
|
||||
fprintf(stderr, "[!] can't open file for reading: %s", infile);
|
||||
fprintf(stderr, "[!] can't open file for reading: %s\n", infile);
|
||||
exit(1);
|
||||
}
|
||||
if (outfile && !freopen(outfile, "w", stdout)) {
|
||||
fprintf(stderr, "[!] can't open file for writing: %s", outfile);
|
||||
fprintf(stderr, "[!] can't open file for writing: %s\n", outfile);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user