LINUX.ORG.RU

Как правильно / во что форматировать флешку?

 , ,


1

4

Обзавелся наконец-то вместительной USB-флешкой, планировал разместить на ней какую-то походную систему и LUKS-раздел под бэкапы домашнего каталога и всякое такое.

С последним возникли некоторые проблемы. Если на FAT32 все более-менее шустро шевелится - линейная запись на флешку порядка 200 МБ/с, да и rsync мелких файлов из домашнего каталога (с игнорированием прав и владельцев) более-менее быстро отрабатывает, то при использовании ФС с поддержкой *nix-разрешений (EXT4, XFS) получаю жуткие тормоза.

Форматирование в EXT4 - по gkrellm всплески активности у диска в несколько КБ/с, делается несколько минут, потом - очень медленная запись при rsync'e (что с журналом, что без). Результатов от mkfs.ext2 я вообще не дождался - выполнил команду, успел приготовить ужин и поесть; в итоге просто выдернул флешку из порта, так как на Ctrl+c оно тоже не реагировало.

На XFS форматирование и запись как-то пошустрее, но все равно далеко от идеала.

Пробовал поиграть с stride/stripe-width для EXT4 по примерам с интернета, но толку это не дает, да и я не вполне понял, как подбирать их в данном случае. Попробовал накатить EXT4 напрямую на устройство, без таблицы разделов (без журнала, stripe/stride по 1024) - ну, в принципе, когда rsync проходит мелкие файлы и начинается линейная запись чего-то крупного (а мелкие файлы уже скинулись из буфера на диск), то вполне адекватная скорость. Но с EXT4 есть еще какая-то хрень: непрерывная запись на диск, стоит только смонтировать раздел (не важно, была ФС на разделе или диске целиком): https://pic4a.ru/83/dXj.png - стоит сделать remount,ro - запись прекращается. Это на пустой, только что созданной ФС без журнала.

В общем, как правильно поделать выравнивания разделов, ФС и LUKS (если надо), а также как оптимизировать ФС (и какую? Как избежать паразитной записи, если это EXT?), чтобы получить то, что хочу? В результате нужно 4 раздела - EFI, /boot, / и LUKS, поэтому вариант «форматировать в один раздел без таблицы» не сильно подходит.

Debian 9.3, если что

★★★★★

Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от sphericalhorse

sudo mkfs.ext2 /dev/mapper/hyperx на тот момент. Что еще можно было сделать не так? Могу повторить сейчас эксперимент, если надо.

YAR ★★★★★
() автор топика
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR

Ну я человек простой:
- вместо /dev/mapper/что-то, я пользуюсь /dev/sdчто-то;
- если что-то работате не так, я делаю dd if=/dev/zero of=/dev/sdчто-то count=по_настроению.

Проблем не возникало.

sphericalhorse ★★★★★
()

В udf вроде можно, эта fs изначально использовалась для оптических дисков. Сам не пробовал.

Aber ★★★★★
()
Ответ на: комментарий от sphericalhorse

Вот на сейчас, запустил команду несколько минут назад (после своего ответа):

rain@walkbook:~$ time sudo mkfs.ext2 -F /dev/sda 
mke2fs 1.43.4 (31-Jan-2017)
/dev/sda contains a ext4 file system
        last mounted on /media/rain/a698ebdf-d08a-4b0d-a01e-5b69a524b7fb on Tue Mar  6 00:12:27 2018
Creating filesystem with 122880000 4k blocks and 30720000 inodes
Filesystem UUID: 0a3f14c5-7e4e-43d0-9c82-84f0a67e30a9
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000

Allocating group tables: done                            
Writing inode tables: 1114/3750

Первые 1100 прошли почти моментально. Потом десяток - примерно по единице в секунду. Сейчас счетчик меняется раз в полминуты. В тот раз я просто нажал C-c и уже не видел прогресса, но терминал команда мне так и не вернула.

https://paste.ubuntu.com/p/gXyJp9Mwsy/

YAR ★★★★★
() автор топика
Ответ на: комментарий от sphericalhorse

mapper - потому что LUKS. Смотри пример выше с sda. Вот тебе напрямую. Даже без таблицы разделов.

YAR ★★★★★
() автор топика

Но с EXT4 есть еще какая-то хрень: непрерывная запись на диск, стоит только смонтировать раздел (не важно, была ФС на разделе или диске целиком): https://pic4a.ru/83/dXj.png - стоит сделать remount,ro - запись прекращается. Это на пустой, только что созданной ФС без журнала.

Это нормальное поведение. Опция lazy_itable_init по умолчанию включена. Форматирование быстро заканчивается, потому что создаёт только критически важное. Остальное делается потом, уже на рабочей ФС.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Ага, ок, буду знать.

// Writing inode tables: 1737/3750

YAR ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Поддержка файловой системы F2FS включена в ядро Linux начиная с 3.8.

Блин. Чуть-чуть неудобно - есть кое-где, например, Debian с 3.2. Но попробую, если что.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

На 2000 с лишним выдернул флешку, надоело ждать.

real 52m27,283s
user 0m0,077s
sys 0m5,599s

YAR ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Попробовал, пока без разбивки флешки. Работает шустро, очень шустро. Правда, смущает занятое место - 1.2G - при пустом разделе.

Пожалуй, даже черт с ними, со старыми системами - EXT4, сделанный на новых, на старых тоже не монтируется. Но может кто-то еще что-то посоветует...

YAR ★★★★★
() автор топика

Если линуксовая фс для флешки то попробуйте nilfs2, сделана как раз для них и скорость высокая

Единственный недостаток - необходимость процесса сборки мусора

ism ★★★
()
Ответ на: комментарий от ism

скорость высокая

rsync домашнего каталога + umount раздела. Примерно так:

F2FS:
real 2m51,635s
user 1m42,002s
sys 0m24,903s

NILFS2:
real 12m26,070s
user 3m10,406s
sys 1m6,649s

YAR ★★★★★
() автор топика
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR

Странно, в nilfs2 нечему тормозить, она подряд пишет. Скорей всего тормоза изза особенностей флешки.

Пробовал когдато ext4 нормально было, даже ось на флешку ставил, не быстро но работало

f2fs сильно кеширует возможно от этого и результат

ism ★★★
()
Последнее исправление: ism (всего исправлений: 4)
Ответ на: комментарий от madcore

недостатки

  • не смог изменить размер уже созданого раздела
  • при включении долго проверяет раздел каждый раз на 2-х компах с SSD
  • BananaPi и Card reader ноутбука бывало перемонтировалась в ro
Deleted
()
Ответ на: комментарий от madcore

У меня была какое-то время, но пришлось откатится на ext4 чтоб под вендой читалось.

anonymous
()
Ответ на: комментарий от anonymous

Значит, уедет по гарантии. Что делать, если адекватными методами ее не остановить?

YAR ★★★★★
() автор топика
Ответ на: комментарий от greenman

Гм, как-то не задумывался о таком варианте.

Вообще, в идеале хотелось что-то в стиле Corsair Survivor, но быстрое и объемное.

YAR ★★★★★
() автор топика
Ответ на: комментарий от greenman

Ещё можно платку M.2 в корпус засунуть. Получится что-то пошире флешки, но всё же поменьше 1.8". Со случайным доступом должно быть получше.

i-rinat ★★★★★
()
Ответ на: комментарий от YAR

Ну я не знаю, например ключи смотреть всякие, например -f (fast) и прочие при форматированиях. В общем, сначала думать, а потом делать.

anonymous
()

Для больших флэшек придумали exFAT.

iZEN ★★★★★
()
Ответ на: комментарий от i-rinat

Ещё можно платку M.2 в корпус засунуть.

Ух ты, не знал, что такие есть. Вообще красиво выходит: https://www.amazon.com/ONCHOICE-Enclosure-Aluminium-Type-C-External/dp/B06Y3T...

Ок, в будущем будет больше выбор. А пока буду пользоваться новой флешкой :)

YAR ★★★★★
() автор топика

Ладно, раз уж с ФС на флешке более-менее определился и уже частично наполнил ее контентом, сведем топик больше к теоретическому вопросу: а все эти «большие» ФС вообще применимы в контексте USB-накопителя? Т.е., использовать ту же «обычную» EXT4, но заставить ее активно кэшировать и минимизировать операции записи, подобрав нужные параметры - причем, сделать это в рамках параметров ФС, а не параметрами монтирования (которые пришлось бы прописывать на каждом хосте, куда подключается флешка).

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

В tune2fs есть возможность прописать дефолтные опции монтирования для каждого раздела на ext4. Кажется мне, что они внутрь ФС прописываются, то есть как раз то, что тебе надо. А вот какие нужно указывать, чтобы флешки быстрее заработали, не знаю.

i-rinat ★★★★★
()

Если втыкать флешку повсеместно задача не стоит, то я бы вообще btrfs на нее. Будет тебе и сжатие и rebalance по желанию

anonymous_sama ★★★★★
()
Ответ на: комментарий от madcore

А есть истории успеха использования f2fs для / ?

Я пробовал в качестве эксперимента в fedora24 для корня. Поначалу всё норм. Но месяца через 2 всё дичайше замедлилось. Файловые операции стали происходить раз в 5 — 10 медленнее чем ранее. Да, всё дело происходило на обычном HDD, не флэшка и не SDD.

justAmoment ★★★★★
()
Ответ на: комментарий от YAR

Ладно, раз уж с ФС на флешке более-менее определился и уже частично...

Попробуй как себя будет вести, если на флэшке сделать раздел LVM, а уже в нём сделать ext4 форматирование со стандартными параметрами безо всякого тюнинга. Есть большое подозрение что работа с мелкими файлами улучшится.

justAmoment ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.