On Mon, 27 Oct 2008 11:49:17 +0300 "Dmitry Fedorov" <[EMAIL PROTECTED]> wrote:
> > Хм... Видимо, я что-то недопонимаю в том, как FS хранит такой файл. > > Размер файла 4294967296 байт, т.е. 4194304 кбайт. Ясно, что не все эти > > килобайты заполнены, часть этого пространства -- дырки. > > > > Но FS хранит один такой файл в 1119512 однокилобайтных блоках, а другой > > точно такой же (копию) -- в 1051616 блоках. Странно. > > Дырки сами по себе из нулевых данных не образуются, их делать надо. > В одном файле нули остались нулями с использовнием блоков данных, > без дырок, > в другом нулевые области заменились дырками. Ура! Я продырявил файл! ~/tmp$ dd if=/dev/zero of=orig.bin count=20 20+0 записей считано 20+0 записей написано скопировано 10240 байт (10 kB), 0,0001567 секунд, 65,3 MB/s ~/tmp$ hexedit orig.bin (два байта, нулевой и последний, поменял с 0x00 на 0xAA) ~/tmp$ cp --sparse=always orig.bin copy.bin ~/tmp$ ls -1s 8 copy.bin 12 orig.bin Что мы видим? Файл размером 10 kB с двумя ненулевыми и остальными нулевыми байтами продырявился, но файловой системе нужно целых 8 блоков, чтобы его хранить. А не один блок, как я ожидал. Ну что ж, видимо, ей так нравится. Оставим это на её совести. :) Вопрос закрыт. Спасибо за советы. -- Андрей Телешов -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

