Где файловая система? [РЕШЕНО]

Заметил у себя удивительную вещь: файловя система первого раздела как бы привязывается куда ни попадя. Ниже фрагмент lsblk -f; sda - это винт, sda2 - Extended Partition, sdb - флэшка с разбивкой, sdc - флэшка "BigFloppy". Никаких средств автомонтирования в это момент нет (ни ФМ с автомонтированием, ни правила udev), udisks не установлен, udisks2 установлен.
sda     vfat   DOS       4E05-3164
├─sda1  vfat   DOS       4E05-3164                            /home/ftp1/pub/c
├─sda2  vfat   DOS       4E05-3164
├─sda3  swap   DOS       14d9a71d-c13f-4a66-9788-c0de65c98173 [SWAP]
...
sdb     vfat   AK-16G    C41B-67D2
└─sdb1  vfat   AK-16G    C41B-67D2
sdc     vfat   AG-4G_BF  529A-EEF2
Почему sda, sda2 и sdb как бы имеют файловые системы?!

А вот теперь восстанавливаю автомонтирование udev, вынимаю, и снова вставляю обе флэшки. Ниже соответствующая часть вывода lsblk и mount:
/dev/sdb on /media/AK-16G type vfat ...
/dev/sdc on /media/AG-4G_BF type vfat ...
sdb     vfat   AK-16G    C41B-67D2
└─sdb1  vfat   AK-16G    C41B-67D2
sdc     vfat   AG-4G_BF  529A-EEF2                            /media/AG-4G_BF
Всё, вроде, работает адекватно. Но:
  • Как вместо раздела sdb1 сумел смонтироваться как бы sdb? (Правило udev может пытаться это сделать, но почему получается?!)
  • Почему этого монтирования не видит lsblk?
  • И, главное, чем это чревато? Не запишется ли мне однажды бутсектор файловой системы поверх MBR, и FAT со сдвигом в -20 секторов?

Правило udev такое:
cat 12-media-by-label-auto-mount.rules
KERNEL=="sd[b-z][1-9]*", GOTO="test_FS"
KERNEL!="sd[b-z]", GOTO="media_by_label_auto_mount_end"
LABEL="test_FS"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="%k"
# Global mount options
ACTION=="add", ENV{mount_options}="uid=1000,umask=022,dmask=0"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="$env{mount_options},codepage=866,iocharset=utf8"
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="defaults,$env{mount_options}"
# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"
я бы переразметил флешки, но сначала забил бы их нулями.... dd if=/dev/zero of=/dev/sdX
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
я бы переразметил флешки, но сначала забил бы их нулями.... dd if=/dev/zero of=/dev/sdX
И винт тоже? И ещё две флэшки тоже? Нет, тут явно что-то не то с системой. Кстати, blkid выдаёт аналогичную фигню, так что собака глубоко зарыта.

2All: а что у вас показывает lsblk -f на sda, sdb и прочие диски с таблицей разделов?
lsblk -f
NAME   FSTYPE  LABEL         UUID                                 MOUNTPOINT
sda
└─sda1 btrfs   old           e4910ee7-f4d2-4da5-83e9-1b8c1bcd5a15
sdb
├─sdb1 ntfs                  22EC5685EC565361
├─sdb2 ext4    Boot          c16097bc-d21e-4172-abd2-518fc73ed01b
├─sdb3 ext4    Root          ce0f399c-1299-4030-8872-4148436ac932 /
├─sdb4
├─sdb5 ext4    Home          3b62c2bf-40ac-444a-aacf-b60f0746cab6 /home
└─sdb6 swap    Swap          ebd176ec-5c7e-49f7-afec-5b339612c2a0 [SWAP]
sdc
├─sdc1 ntfs    Win 8         08441B19441B08D8
├─sdc2
├─sdc3
├─sdc5 ntfs    WinDb         5EE19BD93AC3B2F4
└─sdc6
sdd
sr0    iso9660 Acronis Media 2010-04-25-23-49-04-00         
все отлично
sdd чистейшая флешка забитая нулями
sdb4 sdc3 - расширенный раздел
sdc2 sdc6 не отформатирован

akorop, реально ты у себя что то наворотил...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
кстати я сделал так же как у тебя
сначала отформатировал /dev/sdd
потом разбил с на разделы и получил
sdd    vfat                  3B2C-76F4
├─sdd1 vfat                  3B2C-76F4
└─sdd2 vfat                  3B2C-76F4
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
отформатировал sdd1
sdd    vfat                  3B2C-76F4
├─sdd1 vfat                  786A-9026
└─sdd2 vfat                  3B2C-76F4
а теперь эксперемент который ответит на вопрос
И, главное, чем это чревато? Не запишется ли мне однажды бутсектор файловой системы поверх MBR, и FAT со сдвигом в -20 секторов?
примонтирую sdd1 создам там файлик с текстом, по идее он создастся в начале диска.
потом отмонтирую и примонтирую sdd, и создам файлик но большой, надеюсь он затрет файл на разделе sdd1.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
вуаля, эксперимент прошел успешно, после копирования нескольких больших фильмов на sdd, на sdd1 появилась куча разных файлов с не читаемыми символами, а текстового файла нет! но разметка разделов не изменилась.

думаю ответ на твой вопрос ясен?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
вуаля, эксперимент прошел успешно, после копирования нескольких больших фильмов на sdd, на sdd1 появилась куча разных файлов с не читаемыми символами, а текстового файла нет! но разметка разделов не изменилась.

думаю ответ на твой вопрос ясен?
Ничего себе... Если я правильно понимаю жизнь, то это критический баг в системе. Или деструктивная глюкофича. Об этом обязательно надо багрепортить, только не пойму куда.
Поэкспериментировал и я, и оказалось, что обойти этот баг мне не так-то просто. У меня кругом стоит grub4dos, и баг именно нём и проявляется. Если я ставлю стандартный MBR - у sdb файловой системы не обнаруживается, но теперь я с этой флэшки не могу загрузиться. Если я снова устанавливаю grub4dos - опять у sdb появляется как бы файловая система. Обнуление остальных секторов нулевой дорожки не влияет.
Присмотрелся я к тому MBR, который ставит bootlace.com - а в нём в начальной части какие-то странные слова, вроде FAT32. При этом код начинается с адреса 0x60. Ну я и обнулил 16 байтов с 0x40. Загрузочной флэшка осталась, глюк с файловой системой sdb исчез. Повторил ту же операцию с sda - тоже прокатило.
Я это дело ещё поисследую, так что пока "[РЕШЕНО]" в заголовок не вставляю.
Результаты такие.
Кто виноват. Если на флэшку (скажем, sdb) поставить grub4dos, то с большой вероятностью систему поражает шизофрения: она считает, что диск имеет разбивку и показывает sdb1, но при этом одновоременно считает, что файловую систему имеет прямо весь sdb (LargeFloppy). Увидеть это можно командой lsblk -f.
Вообще-то, в MBR от grub4dos используются первые 8 байтов, и затем начиная с 0x60, но в промежуток между ними bootlace.com пишет какой-то мусор, от которого система и балдеет. Я понимаю, что, наверно, нет абсолютно надёжного способа различить диск Partitioned и LargeFloppy, и я бы не удивился, если в какой-то ситуации Partitioned воспринимается как LargeFloppy, но не одновременно же! Вот только не пойму, куда это надо багрепортить - ядерщикам, что ли?
Что делать. Конкретно для grub4dos - обнулить в MBR байты с 0x08 по 0x5F. Просто обнулить какие-то слова вроде FAT32 мало - даже совершено невинные с виду двоичные данные могут спровоцировать ошибку, а обнуление всего промежутка даёт надёжное излечение. Конкретные команды:
umount /dev/sdb
umount /dev/sdb1
dd if=/dev/zero of=/dev/sdb bs=1 seek=8 count=88
eject /dev/sdb
Какой багрепорт — если Вы грубо нарушаете все стандарты и спецификации USB, согласно которым, такая операция не допустима. Правда, сейчас такие операции уже возможны, но с использованием опять же специальных фирменных утилита для разбивания флешки на разделы, например такая утилита имеется у trancsend (у других не знаю).
Ну а если уж Вам необходимо проделать такую операцию самостоятельно (в обход всех норм и правил), то чтобы грамотно проделать эту операцию, необходимо определить контроллер флешки, а уж к нему подобрать соответствукющую утилиту. Тогда не будет никаких проблем. При желании можете даже воткнуть виртуальный CD ROM. Уточняю - для этого должен быть специальный драйвер.
А так, как это делаете это Вы, прямо в лоб, разделы флешки могут быть не правильно отображаться в отдельных системах и работать не правильно, что nafanja и продемонстрировал.
Вообще не вижу смысла разбивать флешку, да притом загрузочную, на разделы.
Сам все загрузочные флешки всегда делаю с grub4dos и проблем нет. Если что то нужно вдруг на ее записать (что бывает довольно редко) имеется отдельная папка DOC — и без проблем.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.