Это задокументированное поведение.
От info ls
:
-f
:
В основном, как и `-U'- не сортировать; перечислять файлы в том порядке, в котором они хранятся. порядке, в котором они хранятся в каталоге. Но также можно включить `-a' (перечислить все файлы) и отключить `-l', `--color', и `-s' (если они были указаны указаны до `-f').
То, что вы должны использовать, полностью зависит от того, что вам нужно.
Из вывода lsblk -f
в исходном сообщении я заподозрил, что подпись установленного SystemRescueCd все еще присутствует на внешнем жестком диске. Поэтому я запустил команду wipefs /dev/sdc
и wipefs /dev/sdc1
, которая напечатала информацию о sdc
и обо всех разделах на sdc
:
[root@fedora user]# wipefs /dev/sdc
DEVICE OFFSET TYPE UUID LABEL
sdc 0x8001 iso9660 sysrcd-5.2.2
sdc 0x1fe dos
[root@fedora user]# wipefs /dev/sdc1
DEVICE OFFSET TYPE UUID LABEL
sdc1 0x3 ntfs
sdc1 0x1fe dos
Приведенная выше распечатка подтверждает, что таблица разделов iso9660
, созданная SystemRescueCd, по-прежнему существует. lsblk
использовал TYPE
и LABEL
таблицы разделов iso9660
вместо таблицы разделов основной загрузочной записи (dos ). Чтобы заставить lsblk
отображать правильную таблицу разделов, таблицу разделов iso9660
нужно было удалить. Обратите внимание, что dd
также можно использовать для стирания подписи таблицы разделов -с блочного (диска )устройства, но dd
также может стирать другие таблицы разделов.
Поскольку мы хотим настроить таргетинг только на определенную сигнатуру таблицы разделов -для очистки, wipefs
был предпочтительнее, поскольку в отличие от dd
с wipefs
нам не пришлось бы заново создавать таблицу разделов.Опция -a
команды wipefs
стирает все доступные подписи на устройстве, но опция -t
команды wipefs
при использовании вместе с опцией -a
ограничивает удаление подписей только определенным типом подписей. таблица разделов. Ниже стираем таблицу разделов iso9660
. Опция-f
(--force
)требуется при стирании подписи таблицы раздела -на блочном устройстве.
[root@fedora user]# wipefs -a -t iso9660 -f /dev/sdc
/dev/sdc: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31
После стирания таблицы разделов iso9660
мы снова проверяем таблицу разделов, чтобы убедиться, что таблица разделов iso9660
была стерта:
[root@fedora user]# wipefs /dev/sdc
DEVICE OFFSET TYPE UUID LABEL
sdc 0x1fe dos
[root@fedora user]# wipefs /dev/sdc1
DEVICE OFFSET TYPE UUID LABEL
sdc1 0x3 ntfs 34435675G36Y4776
sdc1 0x1fe dos
Но теперь, когда проблемная таблица разделов iso9660
была стерта, lsblk
теперь использует UUID
раздела в качестве имени каталога точки монтирования, поскольку ранее использовавшаяся метка таблицы iso9660
раздела -отсутствует. больше не существует:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs System Reserved
├─sda2 ntfs
├─sda3 ntfs
├─sda4
sdc
└─sdc1 ntfs 34435675G36Y4776 /run/media/user/34435675G36Y4776
мы можем проверить, какие тома (т. е. разделы )имеют метки в каталоге /dev/disk/by-label
, в котором перечислены все разделы, имеющие метку:
[root@fedora user]# ls -l /dev/disk/by-label
total 0
lrwxrwxrwx. 1 root root 10 Apr 30 19:47 'System\x20Reserved' ->../../sda1
Файловая система ntfs
на разделе sda1
— единственный раздел, имеющий метку
Чтобы сделать имя каталога точки монтирования более удобочитаемым, мы изменили метку для ntfs
файловой системы в разделе sdc1
с ничего (пустая строка )на «новую метку». Команды для изменения метки файловой системы зависят от файловой системы 12 . Для файловой системы ntfs
изменение метки выполняется командойntfslabel
:
ntfslabel /dev/sdc1 "new-label"
Теперь после смены метки на ntfs
файловой системе lsblk
использует "new-label"
в качестве имени каталога точки монтирования:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs System Reserved
├─sda2 ntfs
├─sda3 ntfs
├─sda4
sdc
└─sdc1 ntfs new-label /run/media/user/new-label
Обратите внимание :также, что устройство sdc
больше не имеет типа файловой системы и метки, как и все другие блочные устройства (, например. сда ). Только разделы должны иметь тип файловой системы, поскольку файловая система находится на разделе, а не на устройстве, и метку, поскольку заголовок столбца LABEL
является меткой файловой системы, а не меткой устройства.
lsblk
, вероятно, сначала проверяет первый сектор, чтобы увидеть, какой тип файловой системы содержит устройство, и только если ничего не будет найдено, перейдет к «обычным» местоположениям для суперблоков файловой системы.
Поскольку iso9660 распознается по данным в первом секторе, lsblk
не смотрит дальше и также извлекает оттуда метку тома.
Простое создание таблицы разделов оставляет большую часть первого сектора нетронутой, вот почему вы видите это.
Сначала необходимо стереть первый сектор, например, с помощью. dd if=/dev/zero of=/dev/sdc count=1
, а затем заново создайте таблицу разделов. Если вы создадите его заново с теми же параметрами, файловая система NTFS, которую вы создали ранее, должна остаться нетронутой.
Пробовали ли вы повторно -прочитать таблицу разделов (от имени пользователя root )?
partprobe /dev/sdc