Автор Тема: Файловая система для флешки. ext2 или f2fs ?  (Прочитано 1444 раз)

Оффлайн Spanish ArCher

  • Завсегдатай
  • *
  • Сообщений: 1 234
Проведите эксперимент ещё и с exfat и ext4.

где-то читал, что exfat вшит в ядро с версии 5.7

у меня пока
$ uname -r
5.4.149-std-def-alt1

еще fuse-exfat нужен...
или уже не нужен?

как узнать exfat уже в ядре или нет?

Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 284
как узнать exfat уже в ядре или нет?
modinfo exfatЕсли покажет свойства модуля, значит он есть.

По поводу выбора между f2fs и ext2 -- первая разработана для флешек, а вторая не учитывает их особенности.

Оффлайн andrew_b

  • Завсегдатай
  • *
  • Сообщений: 535
как узнать exfat уже в ядре или нет?
Поискать в конфиге ядра, который лежит в /boot.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
где-то читал, что exfat вшит в ядро с версии 5.7

Не совсем так. Ядра 5.4+ содержат устаревшую версию драйвера:
# find /lib/modules -type f -name "*exfat*"
/lib/modules/5.4.98-std-def-alt1/kernel/drivers/staging/exfat/exfat.ko
/lib/modules/5.4.128-std-def-alt1/kernel/drivers/staging/exfat/exfat.ko
/lib/modules/5.4.111-std-def-alt1/kernel/drivers/staging/exfat/exfat.ko
/lib/modules/5.4.115-std-def-alt1/kernel/drivers/staging/exfat/exfat.ko
/lib/modules/5.10.17-un-def-alt1/kernel/fs/exfat/exfat.ko

Использование ядер 5.7+ рекомендуется. Но разработка поддержки exfat в линукс началась с ядер 3.4+. Поддержка ядер ниже 4.9, последним драйвером прекращена. Для упрощения сопровождения драйвера.

У альтов драйвер exfat входит в пакеты:
# rpm -qf /lib/modules/5.4.115-std-def-alt1/kernel/drivers/staging/exfat/exfat.ko
kernel-modules-staging-std-def-5.4.115-alt1.x86_64

# rpm -qf /lib/modules/5.10.17-un-def-alt1/kernel/fs/exfat/exfat.ko
kernel-image-un-def-5.10.17-alt1.x86_64

CONFIG_EXFAT_FS: exFAT filesystem support
https://cateee.net/lkddb/web-lkddb/EXFAT_FS.html

# grep CONFIG_EXFAT_FS /boot/config-*
/boot/config-5.10.17-un-def-alt1:CONFIG_EXFAT_FS=m
/boot/config-5.4.111-std-def-alt1:CONFIG_EXFAT_FS=m
/boot/config-5.4.115-std-def-alt1:CONFIG_EXFAT_FS=m
/boot/config-5.4.128-std-def-alt1:CONFIG_EXFAT_FS=m
/boot/config-5.4.98-std-def-alt1:CONFIG_EXFAT_FS=m
« Последнее редактирование: 07.10.2021 13:50:24 от Speccyfighter »

Оффлайн Spanish ArCher

  • Завсегдатай
  • *
  • Сообщений: 1 234
Продолжил опыты.

На ExFAT большие iso файлы слились за 59 минут.
А маленькие mp3 и flac миднайт командир показал ожидаемое время несколько часов, и я не стал больше мучать зверька.

А вот ext4 и ext2 даже не смог создать файловые системы. mkfs уходит в беспробудный сон D+

Может виной китайский нонейм. Не знаю.

Вобщем, опыты прекращаю.


Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
где-то читал, что exfat вшит в ядро с версии 5.7

Да. Нужно перейти на ядро un-def, оно 5.10

Оффлайн Spanish ArCher

  • Завсегдатай
  • *
  • Сообщений: 1 234
где-то читал, что exfat вшит в ядро с версии 5.7

Да. Нужно перейти на ядро un-def, оно 5.10

Не хочу лезть в хорошо налаженную систему. Последний раз я Альт устанавливал в 2018 году. Перешел на 64 бита. И он работает, работает, работает...

P.S. Лучше снукер посмотрю. Сейчас в Португалии идет финал в возрастной категории до 21 года.
« Последнее редактирование: 07.10.2021 17:14:44 от Spanish ArCher »
Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
А вот ext4 и ext2 даже не смог создать файловые системы. mkfs уходит в беспробудный сон D+

В принципе, это не плохо.
Это хреново, очень хреново:
$ man ps | grep uninterruptible
               D    uninterruptible sleep (usually IO)
$ man ps | grep 'foreground process group$'
               +    is in the foreground process group

Это непрерываемая спячка нефонового процесса mkfs.ext2.
И чтобы добиться этого, нужна очень серьёзная причина.

Будет желание и время, повторите пожалуйста ваш эксперимент с mkfs.ext2 так, чтобы процесс стал D+.
Затем выполните последовательно три команды, из которых самая важная, последняя:
(в примере используется тайваньская флешка Silicon-Power, - замените в командах, название silicon на своё)

Подключите флешку и получите данные по ней
$ lsusb | grep -i silicon
Bus 001 Device 022: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive

Используя данные по флешке предыдущей команды, скажите grep искать вашу флешку в файлах product, чтобы получить полный путь к product флешки
$ grep -ri 'Silicon' /sys 2>/dev/null | grep product
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/product:Silicon-Power

Последней командой, самой важной, заменив product на power/control, получите содержимое power/control и покажите, что содержит power/control флешки в тот момент, когда процесс mkfs.ext2 в D+
$ cat $(grep -ril 'Silicon' /sys 2>/dev/null | grep product | sed 's/product/power\/control/')

Мой интерес, немного не праздный. Он касается разработки xfce-sysv. И (вероятно) представилась нечастая возможность посмотреть на чужом оборудовании.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Покажите выброс всех трёх команд на D+.

Нелишним будет вывод и этой команды
(в команде замените silicon на вашу флешку)
$ cat $(grep -ril 'Silicon' /sys 2>/dev/null | grep product | sed 's/product/power\/autosuspend_delay_ms/')

Оффлайн Spanish ArCher

  • Завсегдатай
  • *
  • Сообщений: 1 234
Это китайский нонейм, причем фейковый. Притворяется 2ТБ.
Но f3probe говорит
Bad news: The device `/dev/sdh' is a counterfeit of type limbo
 
You can "fix" this device using the following command:
f3fix --last-sec=61174271 /dev/sdh
 
Device geometry:
                 *Usable* size: 29.17 GB (61174272 blocks)
                Announced size: 1.91 TB (4096000000 blocks)
                        Module: 2.00 TB (2^41 Bytes)
        Approximate cache size: 511.00 MB (1046528 blocks), need-reset=no
           Physical block size: 512.00 Byte (2^9 Bytes)
После f3fix имеем
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdh      8:112  1   1,9T  0 disk
└─sdh1   8:113  1  29,2G  0 part

При подключении journalctl говорит
жов 08 17:37:58 ICI3.lan kernel: usb 2-1.3: new high-speed USB device number 7 using ehci-pci
жов 08 17:37:58 ICI3.lan kernel: usb-storage 2-1.3:1.0: USB Mass Storage device detected
жов 08 17:37:58 ICI3.lan kernel: scsi host7: usb-storage 2-1.3:1.0
жов 08 17:37:58 ICI3.lan mtp-probe[19994]: checking bus 2, device 7: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3"
жов 08 17:37:58 ICI3.lan mtp-probe[19994]: bus: 2, device: 7 was not an MTP device
жов 08 17:37:58 ICI3.lan mtp-probe[20006]: checking bus 2, device 7: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3"
жов 08 17:37:58 ICI3.lan mtp-probe[20006]: bus: 2, device: 7 was not an MTP device
жов 08 17:37:59 ICI3.lan kernel: scsi 7:0:0:0: Direct-Access     Flash    Disk 3.0         2.00 PQ: 0 ANSI: 4
жов 08 17:37:59 ICI3.lan kernel: sd 7:0:0:0: [sdh] 4096000000 512-byte logical blocks: (2.10 TB/1.91 TiB)
жов 08 17:37:59 ICI3.lan kernel: sd 7:0:0:0: [sdh] Write Protect is off
жов 08 17:37:59 ICI3.lan kernel: sd 7:0:0:0: [sdh] Mode Sense: 03 00 00 00
жов 08 17:37:59 ICI3.lan kernel: sd 7:0:0:0: [sdh] No Caching mode page found
жов 08 17:37:59 ICI3.lan kernel: sd 7:0:0:0: [sdh] Assuming drive cache: write through
жов 08 17:37:59 ICI3.lan kernel:  sdh: sdh1
жов 08 17:37:59 ICI3.lan kernel: sd 7:0:0:0: [sdh] Attached SCSI removable disk

далее
# mkfs.ext2 -L A2GEXT2    /dev/sdh1                                 
mke2fs 1.44.6 (5-Mar-2019)
/dev/sdh1 містить файлову систему f2fs з міткою A2GF2FS
Продовжувати? (y - так, N - ні) y
Створюємо файлову систему з 7647648 4К блоками та 1913184 inode
UUID файлової системи: 2bcc3f0d-8d9f-4d48-8f61-fa1ce52db7e9
Резервні копії суперблоку зберігаються у таких блоках: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000
 
Розміщуємо таблиці груп: виконано                         
Записуємо таблиці inode: виконано                         
Записуємо дані щодо обліку суперблоків та файлової системи:       

и на этом фсё

$ ps aux | grep mkfs.ext2
root       20968  1.0  0.0   6072  3272 pts/4    D+   18:01   0:00 mkfs.ext2 -L A2GEXT2 /dev/sdh1
 
$ lsusb
Bus 002 Device 007: ID 048d:1234 Integrated Technology Express, Inc. Mass storage
$ grep -ri 'Mass Storage Device' /sys 2>/dev/null | grep product                                                         
/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.5/product:Mass Storage Device

$ cat $(grep -ril 'Mass Storage Device' /sys 2>/dev/null | grep product | sed 's/product/power\/control/')
on
$ cat $(grep -ril 'Mass Storage Device' /sys 2>/dev/null | grep product | sed 's/product/power\/autosuspend_delay_ms/')         
2000
Если это чем-то поможет...

P.S. Наверное нужно было сделать
export LANG=C

протупил...
Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн Spanish ArCher

  • Завсегдатай
  • *
  • Сообщений: 1 234
Опаньки!
mkfs.ext2 отработала.
Я оставил консоль, а оно вот чем обернулось.

lsblk -f
NAME   FSTYPE LABEL   UUID                                 FSAVAIL FSUSE% MOUNTPOINT         
sdh                                                                       
└─sdh1 ext2   A2GEXT2 2bcc3f0d-8d9f-4d48-8f61-fa1ce52db7e9
В логах можно найти, когда mkfs.ext2 закончила работу?
Если я попался вам навстречу, Значит вам со мной не по пути.
(С) Воскресение

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
P.S. Наверное нужно было сделать
export LANG=C

протупил...

Нічого. Все нормально. Для мене не критично. Обидвами вільно. :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
$ ps aux | grep mkfs.ext2
root       20968  1.0  0.0   6072  3272 pts/4    D+   18:01   0:00 mkfs.ext2 -L A2GEXT2 /dev/sdh1
$ cat $(grep -ril 'Mass Storage Device' /sys 2>/dev/null | grep product | sed 's/product/power\/control/')
on
$ cat $(grep -ril 'Mass Storage Device' /sys 2>/dev/null | grep product | sed 's/product/power\/autosuspend_delay_ms/')         
2000
Если это чем-то поможет...

Скрытый вопрос был в плане:
Насколько предсказуемо, для внешних usb-устройств, ядра 5+ отключают autosuspend.
Выводы говорят что отключают (power/control:on). Даже если внешнее usb-устройство, это ноунэйм и фейк.


Bad news: The device `/dev/sdh' is a counterfeit of type limbo

далее
# mkfs.ext2 -L A2GEXT2    /dev/sdh1                                 
mke2fs 1.44.6 (5-Mar-2019)
/dev/sdh1 містить файлову систему f2fs з міткою A2GF2FS
Продовжувати? (y - так, N - ні) y
Створюємо файлову систему з 7647648 4К блоками та 1913184 inode
UUID файлової системи: 2bcc3f0d-8d9f-4d48-8f61-fa1ce52db7e9
Резервні копії суперблоку зберігаються у таких блоках: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000
 
Розміщуємо таблиці груп: виконано                         
Записуємо таблиці inode: виконано                         
Записуємо дані щодо обліку суперблоків та файлової системи:       

и на этом фсё

$ ps aux | grep mkfs.ext2
root       20968  1.0  0.0   6072  3272 pts/4    D+   18:01   0:00 mkfs.ext2 -L A2GEXT2 /dev/sdh1

О как!..
Не завершился последний этап записи суперблока и процесс переднего плана ушёл в непрерываемую спячку. Который нельзя прервать даже по SysRq. Потому шо uninterruptible как бы намекает.

С autosuspend D+ не связано.
Bad news: The device `/dev/sdh' is a counterfeit of type limbo (?)
Физический размер 29 гигов, а врёт что 2 терабайта.
Writing superblocks просто обязан был завершиться done/виконано. Но этого не произошло.

Там где не врёт, доступный и заявленный, по количеству блоков должны быть равны:
Good news: The device `/dev/mmcblk0' is the real thing

Device geometry:
         *Usable* size: 1.84 GB (3854336 blocks)
        Announced size: 1.84 GB (3854336 blocks)
« Последнее редактирование: 09.10.2021 04:43:25 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
В логах можно найти, когда mkfs.ext2 закончила работу?

По крайней мере rsyslog это не логгирует.
Проще просить команду показать время отработки команды (time) и время завершения (date):

в формате секунды.сотые секунды
time -f %e mkfs /dev/mmcblk0p1 && date

в формате [часы:]минуты:секунды.сотые
time -f %E mkfs /dev/mmcblk0p1 && date

Команда date, стоящая после двойного амперсанда, отработает только после завершения предыдущей команды.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Опаньки!
mkfs.ext2 отработала.
Я оставил консоль, а оно вот чем обернулось.

Запись суперблоков отрабатывает довольно долго или относительно долго.
В вашей локали это должно было отрабатывать:
(если тип файловой опцией-параметром не указан, по-умолчанию это ext2)
# LANG=uk_UA.UTF-8 time -f %E mkfs /dev/mmcblk0p1; echo $? && date
mke2fs 1.44.6 (5-Mar-2019)
/dev/mmcblk0p1 місить файлову систему ext2
створено Sat Oct  9 13:51:27 2021
Продовжувати? (y - так, N - ні) y
Відкидаємо блоки пристрою: виконано                       
Створюємо файлову систему з 481536 4К блоками та 120480 inode
UUID файлової системи: 254949c3-047a-48b4-96a9-50a9566a98f9
Резервні копії суперблоку зберігаються у таких блоках:
32768, 98304, 163840, 229376, 294912

Розміщуємо таблиці груп: виконано                       
Записуємо таблиці inode: виконано                       
Записуємо дані щодо обліку суперблоків та файлової системи: виконано

0:10.67
0
Сб окт  9 13:53:11 +03 2021

'time -f %E' возвратил: команда выполнена за 0 минут, 10 и 67 сотых секунды (третья строка снизу вывода).
'echo $?' возвращает статус выполнения команды. Вторая строка снизу вывода: 0 - выполнено.
'date' вывела время завершения выполнения однострочника.
Все выполняемые mkfs* действия, должны завершаться done|виконано. Всегда и без исключений.