Задача отформатировать SD карту 32gb в Ext2, из под виндосв.
Попробовал несколько утилит, MiniTool Partition Wizard, Paragon Partition Manager, EasyUS Partition Manager, Acronis Disk Director.
После создания единственного раздела Ext2 во всю карточку, его свободное пространство существенно меньше самого раздела. На половинe утилит Free space на гигабайт меньше раздела, на другой половине утилит - на пол-гигабайта.
Куда пропадает занятое место на Ext2, для чего оно используется и какой его необходимый минимальный объём? В Fat32 карточка форматируется с занятым пространством 30Mb/15Mb теми же утилитами.
Место под fs Ext2
А если взять любой «живой» диск с Linux и из-под него попробовать?
На половинe утилит Free space на гигабайт меньше раздела, на другой половине утилит - на пол-гигабайта.
скорей всего виновато резервирование блоков, по умолчанию для root'а. изменить можно через tune2fs -m
ну и не забывайте, что сама флешка на самом деле ~30ГБ
ну и не забывайте, что сама флешка на самом деле ~30ГБ
А это почему? Флешки ведь не жёсткие диски, там честные гигабайты указаны.
Vascom
Нет, там давно уже указывается как на винчестерах.
Не верю, дайте пруфлинк.
Vascom
Купи любую флэшку да посмотри :)
8Гб = 7.8
4Гб=3.9 и т.д.
Купи любую флэшку да посмотри
8Гб = 7.8
4Гб=3.9 и т.д.
чего-т много... должно быть меньше...
А это почему? Флешки ведь не жёсткие диски, там честные гигабайты указаны.
вы наслушались сказок о честных продавцах железа...
[quote="Wolfenberg"]Купи любую флэшку да посмотри
8Гб = 7.8
4Гб=3.9 и т.д.
чего-т много... должно быть меньше...[/quote]
Это без файловой системы :)
При чём тут это? Любые флешки содержат микросхемы с размером кратным степени 2. Производители железа при всём желании не смогут сэкономить.
Производители указывают размер без перерасчёта бинарной системы.
Аналогично - винчестеры.
Все размеры приходится делить на 1024, чтобы знать истинный размер :)
Всё равно нелогично это для флешек.
Про рекламу тоже никогда не слышал?
Конкуренция большая, вот и заманивают.
Кстати, флэшки размером более 16Гб вообще не рекомендуется приобретать,
т.к. быстро горят контоллеры памяти.
Ну хорошо, убедили, но я ещё проверю :)
на самом деле с флешками немного честней, чем с жёсткими дисками дела обстоят:
микросхемы почти везде стоят с номинальным размером в «честных» мегабайтах, но часть блоков недоступна... контроллер пользует их, для своих нужд: выравнивания износа, реалокации умирающих секторов (на жёстких дисках сейчас такое тоже есть) итп...
некоторые маркетологи(косо взглянул на свою трансцендовскую флешку) ещё придумали ставить на всю линейку(4-8-16G) совершенно одинаковые микросхемы, а потом программно в контроллере ограничивать объём... соответственно за «большие» варианты эти нехорошие люди имеют себе лишних 50 юаней на хлеб с маслом...
само собой народные умельцы уже давно научились перепрошивать «маленькие» варианты...
а то что объём самих микросхем кратен двойки, то тут две причины:
а) так их удобней клепать
б) маркетинг
Причина съеденного места оказалась в inode density. Ext2 при создании раздела сразу создаёт структуры для записи информации о файлах, по одной inode на один файл. Inode density это обратная величина, размер раздела/количество файлов которые на него можно будет записать. Зачем понадобилось заводить обратную величину? Вероятно характеристика "на файловую систему можно записать N файлов" выглядит как то не круто, не будет смотреться рядом с рассуждениями о современной fs Ext и обсиранием всяких FAT, вот и взяли завели обратную величину и получилось некое мистическое "inode density". Так вот одни утилиты создавали раздел с inode density = 4K, а другие с inode density = 8K. Размер inode - 128 байт, вот и получалось 30G/4K*128~1G, 30G/8K*128~0.5G сожранного места. Поменял inode density на 1M (средний размер файла может быть 1M, иначе место на флэшке останется а inodes закончатся и файлы создать уже нельзя будет) - и сожранное место сократилось до 10M.
Означает ли это что "резервирование блоков, по умолчанию для root" - отключено?
Означает ли это что "резервирование блоков, по умолчанию для root" - отключено?
Нет, резервирование блоков это другое. Можешь посмотреть в выводе команды tune2fs -l /dev/sdX
И можешь изменить процент заререзвированного места через параметр -m
tune2fs -l /dev/sdc1 | grep "Reserved block count"/dev/sdc1 — замените на ваше устройство.
Причина съеденного места оказалась в inode density. Ext2 при создании раздела сразу создаёт структуры для записи информации о файлах, по одной inode на один файл. Inode density это обратная величина, размер раздела/количество файлов которые на него можно будет записать.
по умолчанию эта величина равна 4 т.е. 1 инод на 4 блока т.е. 1 инод на 16 Кб. по умолчанию размер инода 256 байт (при создании можно указать 128, если вам acl и xattr не нужен).
настройки по дефолту рассчитаны на корневую ФС.
у вас ошибка в подсчётах: 32ГБ =33554432 Кб = 8388608 блоков т.е. будет создано 2097152 инодов, они займут 536870912 байт = 512 Мб
а вообще tune2fs -l в студию... там всё написано, что и сколько..
Зачем понадобилось заводить обратную величину?
можно и просто количество инодов указывать, но иногда при создании ФС удобней указать именно соотношение инод на блок, она чуть должна быть чуть больше, чем средний размер файла в блоках... это проще, чем думать об общем количестве файлов на устройстве...
на самом деле она ни где не хранится и используется только при создании ФС...
Вероятно характеристика "на файловую систему можно записать N файлов" выглядит как то не круто, не будет смотреться рядом с рассуждениями о современной fs Ext и обсиранием всяких FAT
совершенно разные ФС... fat простая и тупая, как жигуль, а ext с плюшками, дамами и азартными играми, но старая, как мерин 20-ти летней давности...
+ у FAT'а свой оверхед есть: попробуйте сравнить, сколько файлов вам удастся записать на то и на другое... да ещё и скорость работы при сильной фрагментации ФС (для флешек не актуально)
inode density указывается в байтах на один inode, не в блоках.
inode с увеличенным размером 256 байт используется для хранения дополнительной информации о файле. Виндовсовские утилиты по умолчанию создают inode размером 128 байт, без расширенных атрибутов, для того чтобы виндовсовские ext2 драйвера могли монтировать такие разделы.
30*1024*1024*1024/(4*1024)=7864320 inodes, *128=1006632960~1G.