Оформить отправку и получение ZFS.
Команда zfs send создает потоковое представление моментального снимка, который записывается на стандартный вывод. По умолчанию создается полный поток. Вы можете перенаправить вывод в файл или в другую систему.Команда zfs receive создает моментальный снимок, содержимое которого указано в потоке, предоставляемом для стандартного ввода. Если получен полный поток, также создается новая файловая система. С помощью этих команд вы можете отправлять данные моментальных снимков ZFS и получать данные моментальных снимков ZFS и файловые системы. См. Примеры в следующем разделе.
Вы можете сделать резервную копию всей файловой системы в файл и восстановить резервную копию на удаленном сервере. Никаких специальных инструментов не требуется.
https://docs.oracle.com/cd/E18752_01/html/819-5461/gbchx.html
Ну, простым подходом было бы просто создать кучу временных файлов перед каждым .bin
файлом:
function randomFiles() {
for (( i=1; i<=$[$RANDOM%$1+1]; i++ ))
do
mktemp -q --tmpdir=.
done
}
for n in {1..1000}; do
dd if=/dev/urandom of=file$( printf %03d "$n" ).bin bs=1 count=$(( RANDOM + 1024 ))
randomFiles 10
done
rm -f tmp.*
Это создаст от 1 до 10 временных файлов после каждого .bin
файла, сдвигая следующий номер inode вперед.
Создайте тестовый образ файловой системы раз и навсегда. При необходимости используйте отладчик файловой системы, чтобы получить нужные вам номера inode. Чтобы выполнить проверку, создайте копию образа и смонтируйте его.
Вы можете использовать файловую систему FUSE для монтирования образа файловой системы без прав root. Нет реализации FUSE для ext4, но есть для ext2, для zfs и т.д.
Просто измените порядок их создания:
#! /bin/bash
for n in $(seq 1 1000 | sort -R); do
dd if=/dev/urandom of=file$( printf %03d "$n" ).bin bs=1 count=$(( RANDOM + 1024 ))
done