LINUX.ORG.RU

История изменений

Исправление ttnl, (текущая версия) :

Создай ФС на гигабайт, запиши 100 мегабайт данных.

У меня nodatacow маунт опция стоит, она это поведение отменяет. На голой btrfs и вправду такое происходит, но размер используемых данных не растет, и место не заканчивается.


#!/bin/bash
rm file.img
truncate -s 1G file.img
losetup /dev/loop0 file.img || exit 0
mkfs.btrfs /dev/loop0 || exit 0
mkdir mnt || exit 0
mount /dev/loop0 mnt
dd if=/dev/urandom of=mnt/test.file bs=1M count=100 oflag=direct
sync
filefrag -e mnt/test.file
ls -s file.img

for seek in {0..50}; do
	dd if=/dev/urandom of=mnt/test.file bs=1M count=50 seek=$seek \
		oflag=direct conv=nocreat,notrunc
	sync
	filefrag -e mnt/test.file
	ls -s file.img
	df -h mnt
done

dd if=/dev/urandom of=mnt/file2.img bs=1M count=800
sync

umount mnt
losetup -d /dev/loop0
rmdir mnt

Исходная версия ttnl, :

Создай ФС на гигабайт, запиши 100 мегабайт данных.

У меня nodatacow маунт опция стоит, она это поведение отменяет. На голой btrfs и вправду такое происходит, но размер используемых данных не растет, и место не заканчивается.


#!/bin/bash
rm file.img
truncate -s 1G file.img
losetup /dev/loop0 file.img || exit 0
mkfs.btrfs /dev/loop0 || exit 0
mkdir mnt || exit 0
mount /dev/loop0 mnt
dd if=/dev/urandom of=mnt/test.file bs=1M count=100 oflag=direct
sync
filefrag -e mnt/test.file
ls -s file.img

for seek in {0..50}; do
	dd if=/dev/urandom of=mnt/test.file bs=1M count=50 seek=$seek \
		oflag=direct conv=nocreat,notrunc
	sync
	filefrag -e mnt/test.file
	ls -s file.img
	df -h mnt
done

umount mnt
losetup -d /dev/loop0
rmdir mnt