Re[8]: Результаты
От: Роман Дубров Украина Я@Blogspot
Дата: 26.10.06 14:28
Оценка: 2 (1)
Chichikadze пишет:

> длинные имена никак. Как я понял, если на раздел с длинными именами

> натравить старый chkdsk, то он посчитает длинные имена ошибками со всеми
> вытекающими. Но сам не проверял.

за чкдиск не знаю, а 4й нортон диск дестроер посчитает, проверено

--
np: [foobar2000] Norah Jones — Humble Me [paused]
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[2]: Тупой, бесполезный вопрос
От: Privalov  
Дата: 26.10.06 14:01
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, karkadil, Вы писали:


LVV>Если FAT32, то ограничена емкость главного каталога... Но она зависит от размера диска... Во вложенных каталогах количество файлов ограничивается емкостью диска... Не забывайте, что каталог — тот же файл с записями фиксированной длины, в которой помещается системная инфа о файле...


Это верно для FAT16. Для FAT32 несколько иначе:

One of the improvements introduced in the newer FAT32 version of the FAT file system was to remove these restrictions on the root directory. Under FAT32, the root directory is treated much more like a regular directory, and can be relocated and expanded in size like any other. (It's still a good idea not to load up the root directory with too many files.)

здесь

LVV>Аналогичную структуру имеет запись о каталоге — там тока атрибут "директория" стоит вместо атрибут "файл"...


Ну да, вопрос только — добавляет система каталогу кластеры, как в случае обычного файла? Напрочь забыл эту тему.
Тупой, бесполезный вопрос
От: karkadil  
Дата: 26.10.06 08:14
Оценка:
Тут с бодуна всякая фигня лезет в голову. Например, сколько файлов с разными именами (можно и в разных папках, не принципиально) размером 0 (ноль) байт можно создать на винте, ну к примеру 1гигабайтном?
При создании таких файлов количество свободного места вроде как не уменьшается, но должен же быть предел какой-то, например файловая система не позволяет хранить более N файлов и т.д.

Кто-нить в курсе?

А то мы с товарищем тут решили провести эксперимент на флешке, уже начали =)
Re: Тупой, бесполезный вопрос
От: Роман Дубров Украина Я@Blogspot
Дата: 26.10.06 08:36
Оценка:
karkadil пишет:

> Кто-нить в курсе?


на НТФС ЕМНИП МФТ начнет расползаться пока не сожрет то ли какой-то
процент, то ли весь объем диска.

на ФАТ есть ограничение на объем директории, соответственно дерево
директорий с бесконечной вложенностью способно разместить неограниченное
число файлов... что там на практике — хз, подозреваю что будут грабли с
глубиной вложенности

на ЕХТ3 просто тупо кончатся иноды, хотя их можно будет добавить, и
потом они кончатся еще раз

> А то мы с товарищем тут решили провести эксперимент на флешке, уже начали =)


какая ФС? ФАТ небось?
отпишешь результаты...

--
np: [foobar2000] Helene Segara — Elle, tu l'aimes [paused]
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[2]: Тупой, бесполезный вопрос
От: karkadil  
Дата: 26.10.06 08:48
Оценка:
Здравствуйте, Роман Дубров, Вы писали:


РД>какая ФС? ФАТ небось?

РД>отпишешь результаты...

да, ФАТ
отпишу непременно
Re[2]: Тупой, бесполезный вопрос
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 09:02
Оценка:
Здравствуйте, Роман Дубров, Вы писали:

РД>на ФАТ есть ограничение на объем директории, соответственно дерево

РД>директорий с бесконечной вложенностью способно разместить неограниченное

Это в FAT16/FAT12 есть ограничение на размер корневого каталога.

Если FS FAT, то каждый файл занимает как минимум 32 байта (обычно больше, так как для хранения имен используются дополнительные элементы каталога).
Так что теоретический предел для 1 Гб — около 30 000 000.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Результаты
От: karkadil  
Дата: 26.10.06 09:56
Оценка:
В общем, теория
Автор: ДимДимыч
Дата: 26.10.06
с практикой расходятся:

провели опыт на флешке 256 Мб
результат такой:
в корне создалось 6143 файла по 0 байт каждый, после чего невозможно стало создавать ни файлы, ни папки
при этом занято было на флешке 8,6 Мб

затем 10 файлов удалили, но все равно создать папку было нельзя, а файлы можно
потом один файл был отредактирован, сделали его 2 байта размером, после этого удалось создать папку

начали создавать файлы в созданной папке
создалось 126 файлов, после чего ругнулось "Диск защищен от записи"

возможно, с винтом будет иначе, конечно, но маленького винта под рукой нету
Re[2]: Результаты
От: Axc  
Дата: 26.10.06 10:24
Оценка:
Здравствуйте, karkadil, Вы писали:

K>маленького винта под рукой нету


Оффтоп
Маленького... На гигабайт... Слышала бы тебя моя бабушка...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Тупой, бесполезный вопрос
От: v111 Новая Зеландия  
Дата: 26.10.06 10:43
Оценка:
K>При создании таких файлов количество свободного места вроде как не уменьшается, но должен же быть предел какой-то, например файловая система не позволяет хранить более N файлов и т.д.

K>Кто-нить в курсе?


K>А то мы с товарищем тут решили провести эксперимент на флешке, уже начали =)


На фате кончается и довольно быстро. Подозреваю что и в любой другой фс. Для фата один файл занимает минимум сектор на разделе (конфигурируется при форматировании). Число файлов, которые исчерпают раздел, чуть меньше числа секторов (тк сам фат тоже жрет место).

В фидо так когда-то заваливали вражеские ноды — отправляли архив как бы с почтой, а на самом деле там было 10 тыс. пустых файлов. Архив получался совсем маленький. На другом конце программа принятую почту автоматически распаковывала... Спамер некоторое время ждал, потом пытался соединиться еще раз, если получалось, подкидывал еще несколько таких замечательных "почтовых" файлов.
Bow-legged girls in mini make me sad
Re[2]: Результаты
От: Роман Дубров Украина Я@Blogspot
Дата: 26.10.06 10:46
Оценка:
karkadil пишет:

> В общем, теория с практикой расходятся:


надо было побольше папок в корне насоздавать, пока давало

а вообще в стародавние времена по фидо файлбомбы ходили — куча файлов по
0 байт в архиве, у кого тоссер настроен на автораспаковку аттачей — тому
наступал веселый день — и место на винте есть, и создать файл некак.

--
np: [foobar2000] Helene Segara — Elle, tu l'aimes [paused]
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[2]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 12:28
Оценка:
Здравствуйте, karkadil, Вы писали:

K>В общем, теория
Автор: ДимДимыч
Дата: 26.10.06
с практикой расходятся:


Да, видимо я что-то не учел. Создал образ диска размером 1Гб FAT32, смонтировал. Удалось создать 65534 пустых файлов, после чего No space left on device. При этом пишет, что использовано 2.1 мегабайта.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[3]: Результаты
От: Chichikadze Израиль http://mika0x65.livejournal.com
Дата: 26.10.06 12:39
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, karkadil, Вы писали:


K>>В общем, теория
Автор: ДимДимыч
Дата: 26.10.06
с практикой расходятся:


ДД>Да, видимо я что-то не учел. Создал образ диска размером 1Гб FAT32, смонтировал. Удалось создать 65534 пустых файлов, после чего No space left on device. При этом пишет, что использовано 2.1 мегабайта.


Все верно. Ограничение на кол-во файлов в каталоге -- 65535 (кол-во файлов должно описываться шестнадцатью битами). Длина dir entry 32 байта -- в итоге получается 2 ^ 16 * 2 ^ 5 = 2 ^ 21 = 2MB.

Просто драйвер от MS немного глуповат -- когда кол-во возможных записей в корневой/обычной директории заканчивается, он завляет, что места нет вообще. Надо просто еще одну директорию создать и в ней продолжить бесчинство .
Re[3]: Результаты
От: Privalov  
Дата: 26.10.06 12:41
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Да, видимо я что-то не учел. Создал образ диска размером 1Гб FAT32, смонтировал. Удалось создать 65534 пустых файлов, после чего No space left on device. При этом пишет, что использовано 2.1 мегабайта.


Похоже, так:

2^16 * 32 = 2.1 мегабайта (32 байта — размер записи в каталоге для имени файла 8.3). Забил до отказа корневой каталог. Дальше не позволяет. Вот только не помню, размер корневого каталога на FAT32 всегда неизменный?

Кстати, а что будет, если в корне создать каталог, а уже в нем начать создавать файлы? Вроде каталоги ведут себя как обычные файлы?
Re[4]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 13:11
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Кстати, а что будет, если в корне создать каталог, а уже в нем начать создавать файлы? Вроде каталоги ведут себя как обычные файлы?


Попробовал — все равно предел 65534. Если рядом создать еще один каталог, там тоже 65534
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[4]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 13:20
Оценка:
Здравствуйте, Chichikadze, Вы писали:

C>Просто драйвер от MS немного глуповат -- когда кол-во возможных записей в корневой/обычной директории заканчивается, он завляет, что места нет вообще.


Это я под линухом проверял, его драйвер такой код ошибки вернул
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[4]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 13:26
Оценка:
Здравствуйте, Chichikadze, Вы писали:

C>Все верно. Ограничение на кол-во файлов в каталоге -- 65535 (кол-во файлов должно описываться шестнадцатью битами). Длина dir entry 32 байта -- в итоге получается 2 ^ 16 * 2 ^ 5 = 2 ^ 21 = 2MB.


Кстати, в FAT16 размер корневого каталога фиксированный — 16 кб, а в FAT32 размер не ограничен. Но ведь конец каталога обозначается нулевым элементом, поэтому имхо 16-битное ограничение создано исскуственно, чтоб с каталогом могло работать 16-битное приложение.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Тупой, бесполезный вопрос
От: podovan http://podovan.livejournal.com/
Дата: 26.10.06 13:26
Оценка:
Здравствуйте, karkadil, Вы писали:

K>Тут с бодуна всякая фигня лезет в голову. Например, сколько файлов с разными именами (можно и в разных папках, не принципиально) размером 0 (ноль) байт можно создать на винте, ну к примеру 1гигабайтном?

K>При создании таких файлов количество свободного места вроде как не уменьшается, но должен же быть предел какой-то, например файловая система не позволяет хранить более N файлов и т.д.

K>Кто-нить в курсе?


K>А то мы с товарищем тут решили провести эксперимент на флешке, уже начали =)


Зависит от размера кластера на диске, чем меньше размер, тем больше таких файлов можно создать.
«Время жизни складывается не из количества прожитых вздохов, а из секунд в которые у тебя захватывает дыхание.»
(с) фильм «Метод Хитча»
Re[5]: Результаты
От: Chichikadze Израиль http://mika0x65.livejournal.com
Дата: 26.10.06 13:29
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, Chichikadze, Вы писали:


C>>Просто драйвер от MS немного глуповат -- когда кол-во возможных записей в корневой/обычной директории заканчивается, он завляет, что места нет вообще.


ДД>Это я под линухом проверял, его драйвер такой код ошибки вернул


Агаг, сам догадаться должен был. С драйвером от MS 65534 файла не создашь -- он в любом случае длинное имятоже сохраняет.

Значит и Линуксовый драйвер тоже не подарок. У меня на BSD 4.5 после операций на FAT томе все время chkdsk приходится выполнять .
Re: Тупой, бесполезный вопрос
От: LaptevVV Россия  
Дата: 26.10.06 13:31
Оценка:
Здравствуйте, karkadil, Вы писали:

K>Тут с бодуна всякая фигня лезет в голову. Например, сколько файлов с разными именами (можно и в разных папках, не принципиально) размером 0 (ноль) байт можно создать на винте, ну к примеру 1гигабайтном?

K>При создании таких файлов количество свободного места вроде как не уменьшается, но должен же быть предел какой-то, например файловая система не позволяет хранить более N файлов и т.д.
Если FAT32, то ограничена емкость главного каталога... Но она зависит от размера диска... Во вложенных каталогах количество файлов ограничивается емкостью диска... Не забывайте, что каталог — тот же файл с записями фиксированной длины, в которой помещается системная инфа о файле...
Аналогичную структуру имеет запись о каталоге — там тока атрибут "директория" стоит вместо атрибут "файл"...
Так что, хоть и не показывает система затраты диска — они там есть...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Тупой, бесполезный вопрос
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 13:32
Оценка:
Здравствуйте, podovan, Вы писали:

P>Зависит от размера кластера на диске, чем меньше размер, тем больше таких файлов можно создать.


Не согласен. Для файла нулевой длины кластер не выделяется.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[5]: Результаты
От: Privalov  
Дата: 26.10.06 13:39
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Попробовал — все равно предел 65534. Если рядом создать еще один каталог, там тоже 65534


Эх, не осталось у меня под рукой томов с FAT32. В ней, AFAIR, можно (в принципе) создать сколько угодно копий FAT, корневой каталог любого размера и т. д. Однако, приходится привлекать разработки сторонних производителей, потому что

Просто драйвер от MS немного глуповат

Chichikadze здесь
Автор: Chichikadze
Дата: 26.10.06


Это у них давно. Я бы сказал, традиция. Иначе бы не было в свое время программ типа 800.com. Или нельзя было штатными средствами отформатировать раздел меньше 512 М на FAT32, хотя всякими там Partition Magic это делалось без малейших затруднений, и такие разделы (у меня был 200 М) нормально работали.
Если вставить в систему что-нибудь, следящее за состоянием каталогов, тогда, наверное, можно будет создать огромный каталог, содержащий записи о файлах нулевой длины.
Re[5]: Результаты
От: Chichikadze Израиль http://mika0x65.livejournal.com
Дата: 26.10.06 13:39
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, Chichikadze, Вы писали:


C>>Все верно. Ограничение на кол-во файлов в каталоге -- 65535 (кол-во файлов должно описываться шестнадцатью битами). Длина dir entry 32 байта -- в итоге получается 2 ^ 16 * 2 ^ 5 = 2 ^ 21 = 2MB.


ДД>Кстати, в FAT16 размер корневого каталога фиксированный — 16 кб, а в FAT32 размер не ограничен. Но ведь конец каталога обозначается нулевым элементом, поэтому имхо 16-битное ограничение создано исскуственно, чтоб с каталогом могло работать 16-битное приложение.


Да, это для совместимости, видимо, сделано. Но мне не совсем ясно, почему получается создать 65534 файла. По спецификации я понял, что макс. кол-во файлов на каталог -- 65535. Если дело происходит в корневом каталоге, то одну запись должна съесть VOLUME_ID, последняя запись должна быть обнулена, т.е. остается 65533. М.б. VOLUME_ID нет? С простой директорией тоже не ясно -- у нее 2 записи уйдет для ссылок на маму и на себя + признак конца директории. Остается 65532...
Re[6]: Результаты
От: Privalov  
Дата: 26.10.06 13:45
Оценка:
Здравствуйте, Chichikadze, Вы писали:

C>Агаг, сам догадаться должен был. С драйвером от MS 65534 файла не создашь -- он в любом случае длинное имятоже сохраняет.


Ты уверен? По-моему, наличие длинного имени определяется каким-то атрибутом в записи. Еще в Windows 95, если открыть файл с длинным именем старым приложением, имя не сохранялось. В каталоге оставались 32 байта.

Могу ошибаться, давно я дисковыми редакторами по каталогам не лазил...
Re[6]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 13:46
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Эх, не осталось у меня под рукой томов с FAT32. В ней, AFAIR, можно (в принципе) создать сколько угодно копий FAT, корневой каталог любого размера и т. д.


Да без проблем, mkdosfs например позволяет это все задавать.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[6]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 13:54
Оценка:
Здравствуйте, Chichikadze, Вы писали:

C>Да, это для совместимости, видимо, сделано. Но мне не совсем ясно, почему получается создать 65534 файла. По спецификации я понял, что макс. кол-во файлов на каталог -- 65535. Если дело происходит в корневом каталоге, то одну запись должна съесть VOLUME_ID, последняя запись должна быть обнулена, т.е. остается 65533. М.б. VOLUME_ID нет?


VOLUME_ID нет.

C>С простой директорией тоже не ясно -- у нее 2 записи уйдет для ссылок на маму и на себя + признак конца директории. Остается 65532...


В FAT ссылки на саму себя и на маму добавляет драйвер, на диске они не хранятся.

М.б. 65536 минус последний элемент, минус флаг ошибки, например = 65534.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[3]: Тупой, бесполезный вопрос
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 14:07
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Ну да, вопрос только — добавляет система каталогу кластеры, как в случае обычного файла? Напрочь забыл эту тему.


Эксперимент показывает, что добавляет.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[7]: Результаты
От: Chichikadze Израиль http://mika0x65.livejournal.com
Дата: 26.10.06 14:15
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Здравствуйте, Chichikadze, Вы писали:


C>>Агаг, сам догадаться должен был. С драйвером от MS 65534 файла не создашь -- он в любом случае длинное имятоже сохраняет.


P>Ты уверен? По-моему, наличие длинного имени определяется каким-то атрибутом в записи. Еще в Windows 95, если открыть файл с длинным именем старым приложением, имя не сохранялось. В каталоге оставались 32 байта.


Не совсем так -- короткое имя ничего "не знает" о длинном, а длинное имя как раз привязано к короткому контрольной суммой. А сам атрибут, определяющий тип записи в каталоге для длинного имени содержит такое значение, от которого старые драйвера шарахаются и поэтому не видят длинные имена никак. Как я понял, если на раздел с длинными именами натравить старый chkdsk, то он посчитает длинные имена ошибками со всеми вытекающими. Но сам не проверял.
Re[7]: Результаты
От: Chichikadze Израиль http://mika0x65.livejournal.com
Дата: 26.10.06 14:18
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, Chichikadze, Вы писали:


C>>Да, это для совместимости, видимо, сделано. Но мне не совсем ясно, почему получается создать 65534 файла. По спецификации я понял, что макс. кол-во файлов на каталог -- 65535. Если дело происходит в корневом каталоге, то одну запись должна съесть VOLUME_ID, последняя запись должна быть обнулена, т.е. остается 65533. М.б. VOLUME_ID нет?


ДД>VOLUME_ID нет.


Ага. Значит, для корня все сходится -- VOLUME_ID нет, одна запись -- признак конца директории.

C>>С простой директорией тоже не ясно -- у нее 2 записи уйдет для ссылок на маму и на себя + признак конца директории. Остается 65532...


ДД>В FAT ссылки на саму себя и на маму добавляет драйвер, на диске они не хранятся.


Как это, не хранятся? Должны быть, для каждой директории кроме корневой.

ДД>М.б. 65536 минус последний элемент, минус флаг ошибки, например = 65534.


А что за флаг ошибки?
Re[8]: Результаты
От: ДимДимыч Украина http://klug.org.ua
Дата: 26.10.06 14:53
Оценка:
Здравствуйте, Chichikadze, Вы писали:

C>Как это, не хранятся? Должны быть, для каждой директории кроме корневой.


Точно, это я перепутал. Помню, что видел в исходниках драйвера fat строчку "Fake . and .. ", но не запомнил, что "for the root directory".

ДД>>М.б. 65536 минус последний элемент, минус флаг ошибки, например = 65534.

C>А что за флаг ошибки?

Все сходится, 65533 файла создалось. Это оно сказало, что не может создать файл с именем "65534" (я их с "1" нумеровал)
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.