Автор Тема: [РЕШЕНО]После установки SLinux 9 - "error: no such device", "unknown filesystem"  (Прочитано 10960 раз)

Оффлайн Ed L. Weiss

  • Участник
  • *
  • Сообщений: 5
Здравствуйте, уважаемые форумчане. :-)
Прошу помочь в проблеме.
Имеется довольно старый комп:
00:00.0 RAM memory: NVIDIA Corporation MCP61 Memory Controller (rev a1)
00:01.0 ISA bridge: NVIDIA Corporation MCP61 LPC Bridge (rev a2)
00:01.1 SMBus: NVIDIA Corporation MCP61 SMBus (rev a2)
00:01.2 RAM memory: NVIDIA Corporation MCP61 Memory Controller (rev a2)
00:01.3 Co-processor: NVIDIA Corporation MCP61 SMU (rev a2)
00:02.0 USB controller: NVIDIA Corporation MCP61 USB 1.1 Controller (rev a2)
00:02.1 USB controller: NVIDIA Corporation MCP61 USB 2.0 Controller (rev a2)
00:04.0 PCI bridge: NVIDIA Corporation MCP61 PCI bridge (rev a1)
00:05.0 Audio device: NVIDIA Corporation MCP61 High Definition Audio (rev a2)
00:06.0 IDE interface: NVIDIA Corporation MCP61 IDE (rev a2)
00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)
00:08.0 IDE interface: NVIDIA Corporation MCP61 SATA Controller (rev a2)
00:08.1 IDE interface: NVIDIA Corporation MCP61 SATA Controller (rev a2)
00:09.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2)
00:0b.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2)
00:0c.0 PCI bridge: NVIDIA Corporation MCP61 PCI Express bridge (rev a2)
00:0d.0 VGA compatible controller: NVIDIA Corporation C61 [GeForce 6150SE nForce 430] (rev a2)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
На нем установлены несколько дистрибутивов Linux. Расклад по разделам такой:
/dev/sda1 - swap
/dev/sda2 - корень Altlinux 6.0.1 KDEsktop
/dev/sda3 - /home (общий для всех)
/dev/sda5 - корень Simply Linux 6
/dev/sda6 - корень Altlinux 6.0.1 KDEsktop (ещё один)

На /dev/sda2 и /dev/sda6 - это не задвоение, это две системы, но с разным набором пакетов (на sda6 - полный, "чистый" KDEsktop (обзовём его KDE-I, для краткости), на sda2 - урезанный (обзовём его KDE-II).
Задача была следующая:  установить Simply Linux 9 на раздел с KDE-II (ну не нужен он больше, как оказалось; нужен более свежий и актуальный дистрибутив), и при этом ни в коем случае не сносить и вообще не трогать остальные дистрибутивы.
Подключил live-usb, установка прошла штатно (разметку выбрал вручную, создал пользователя, суперпользователя и т.д.), в конце было предложено перезагрузиться.
Примечание
Опишу подробнее по разметке. Для корня SL9 выбрал раздел /sda2, а под /home, от греха подальше, решил отдать нерамеченное пространство на диске. Есть только один смущающий меня момент: на этапе выбора установки загрузчика было предложено: установить на диск, на раздел, и не устанавливать вообще. Помня о том, что раздел /sda2 у меня в GParted был с флагом "boot", я интуитивно выбрал пункт "установить на /sda2". Может это и было моей ошибкой, и вообще его не надо было устанавливать? :-\
После ребута, изменений в загрузочном меню не увидел - система показывает, что на /sda2 по-прежнему висит KDE-II. Ну ладно, попробовал его загрузить - вылетели ошибки "no such device", "unknown filesystem" и "you need to load the kernel first" (см. пикчу №1). То есть, я так понял не монтирует он раздел со свежеустановленной системой, потому что не опознаёт UUID (8c4e3a33-...).
Две другие ОС загружаются на "ура". Зашёл в Simply 6, полез в GParted - узнать, какой же UUID у раздела /sda2. И действительно, записан другой (c36e436c-...). Полез в файл /etc/fstab (см. пикчу №2) и заменил "8c4e3a33-..." на "c36e436c-...", сохранил и перезагрузился. Снова ошибка и ругань на UUID=8c4e3a33-... Нажал "E" и в параметрах загрузки (пикча №3) вручную поменял в двух местах UUID на "c36e436c-...", после чего попробовал загрузиться. Опять ошибка "no such device", только теперь уже на UUID=c36e436c-...
На этом мои идеи закончились, как заставить комп увидеть этот треклятый /sda2.
Посоветуйте, пожалуйста, чего-нибудь.
« Последнее редактирование: 12.05.2020 19:44:31 от Ed L. Weiss »

Оффлайн Ed L. Weiss

  • Участник
  • *
  • Сообщений: 5
Попробовал смонтировать проблемный раздел через консоль. Получилось вот что:
[root@comp-athlon-64-77b688 ~]# mount /mnt/sda2
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде
[root@comp-athlon-64-77b688 ~]# dmesg | tail
[   48.424309] ata1: EH complete
[   51.399313] EXT4-fs (sda5): re-mounted. Opts: commit=0
[   52.979987] Bluetooth: RFCOMM TTY layer initialized
[   52.979996] Bluetooth: RFCOMM socket layer initialized
[   52.980066] Bluetooth: RFCOMM ver 1.11
[   53.838079] EXT4-fs (sda3): re-mounted. Opts: commit=0
[ 3211.037666] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[15344.548872] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[18834.937069] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
[19840.610511] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
Если я правильно понял, бракует тип файловой системы для /dev/sda2. Т.е. при установке Simply Linux 9, раздел отформатировался с каким-то дополнительными фунциями (??). Чувствую, что нужно ещё раз попробовать установить Simply, но как это сделать по-грамотному с учетом всего вышеизложенного? Может, существуют какие-то особенности при установке новых дистрибутивов на машины с установленными старыми?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Какая-то ерунда. В ext4, действительно, есть некоторые обновления, но это не влияет на UUID. Должен был поменяться UUID свопа видимо, а больше ничего. Надо посмотреть, что показывает blkid -c /dev/null с любой загруженной системой.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Попробовал смонтировать проблемный раздел через консоль. Получилось вот что:
[root@comp-athlon-64-77b688 ~]# mount /mnt/sda2
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде
[root@comp-athlon-64-77b688 ~]# dmesg | tail
...
[19840.610511] EXT4-fs (sda2): couldn't mount RDWR because of unsupported optional features (400)
Если я правильно понял, бракует тип файловой системы для /dev/sda2. Т.е. при установке Simply Linux 9, раздел отформатировался с каким-то дополнительными фунциями (??).

Правильно поняли. Новая ext4fs имеет фичи неподдерживаемые старой. Оно и написало в лог: unsupported optional features

как заставить комп увидеть этот треклятый /sda2

Файловую ext4fs созданную в системе на p9 из KDesktop 6.0.1?
Никак:
# cat /etc/altlinux-release
ALT Linux 6.0.2 KDesktop  (Centaurea Sadleriana)
# file -s /dev/sdb1 # p9-xfce-sysv
/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=uuis (extents) (64bit) (large files) (huge files)
# mount /dev/sdb1 /mnt/disk
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде

# dmesg | tail
[  912.576695] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[  912.927909]  sdb: sdb1 sdb2 sdb3 sdb4
[  912.930761] sd 5:0:0:0: [sdb] No Caching mode page found
[  912.930766] sd 5:0:0:0: [sdb] Assuming drive cache: write through
[  912.930768] sd 5:0:0:0: [sdb] Attached SCSI disk
[ 1074.445216] EXT4-fs (sdb1): couldn't mount RDWR because of unsupported optional features (400)

Посоветуйте, пожалуйста, чего-нибудь.

Пробуйте установить Симпли 9 на ext3fs. Можете также сначала создать файловые с ext3fs, а потом устанавливать без форматирования.
Или сначала из под KDesktop 6 создайте файловые ext4 для установки, а установку SL9 выполнять без форматирования (помните как вы форточку обманывали когда она делала не то что вам нужно?).
« Последнее редактирование: 10.05.2020 11:39:45 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Посоветуйте, пожалуйста, чего-нибудь.

Подробности и ещё один вариант решения вашей проблемы, вы найдёте тут в комментариях:
Linux - couldn't mount RDWR because of unsupported optional features (400)
https://unix.stackexchange.com/questions/287159/linux-couldnt-mount-rdwr-because-of-unsupported-optional-features-400

Но будьте осторожны.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Правильно поняли. Новая ext4fs имеет фичи неподдерживаемые старой. Оно и написало в лог: unsupported optional features
Только это не объясняет, почему с sda2-то не загрузилось. Там же система старая.

Кстати где-то вот тут отправная точка видимо: https://bugzilla.altlinux.org/33489

Оффлайн Ed L. Weiss

  • Участник
  • *
  • Сообщений: 5
Должен был поменяться UUID свопа видимо, а больше ничего.
Кстати, у меня в связи с этим возник наивный вопрос. Вот несколько систем на одной машине, соответственно и столько же конфигурационных файлов, где прописаны UUID-ы их корневых разделов (я имею ввиду файлы boot.cfg). А эти файлы каким-то образом перезаписываются всякий раз при манипуляциях с удалением/переустановкой одной из систем? Или их каждый раз нужно править вручную?
Надо посмотреть, что показывает blkid -c /dev/null с любой загруженной системой.
/dev/sda1: UUID="e44eef23-f69f-4b70-a544-ae2e7689b57f" TYPE="swap"
/dev/sda2: UUID="c36e436c-d2a9-48a3-9f48-da444d4f6b34" TYPE="ext4"
/dev/sda3: UUID="05fef1b4-94b5-4582-9787-7400c091854a" TYPE="ext4"
/dev/sda5: UUID="53f955b6-d842-405f-b2fc-3a7b29f5a950" TYPE="ext4"
/dev/sda6: UUID="8f9b690c-238d-46ab-a9dd-9fd4eb4132ce" TYPE="ext4"
/dev/sda7: UUID="a6091e39-5672-4c60-88ab-2f7ef829a61a" TYPE="ext4"
/dev/sdb1: LABEL="Simply Linux live 9.0 x86_64" TYPE="iso9660"
/dev/sdb2: SEC_TYPE="msdos" LABEL="El Torito" UUID="C95B-A305" TYPE="vfat"
Это с подключенной live-usb.
Только это не объясняет, почему с sda2-то не загрузилось. Там же система старая.
Это в загрузочном меню она отображается как "старая". А я считаю, что раз установка прошла "от и до", то на этом разделе уже записана "новая" система. Только опознать ее пока не получается...
Подробности и ещё один вариант решения вашей проблемы, вы найдёте тут в комментариях:
Вы имеете ввиду попробовать выполнить от рута:
tune2fs -O ^metadata_csum /dev/sda2
?
Но будьте осторожны.
Да, да. Я поэтому и не спешу вводить в терминале незнакомые команды, подсмотренные на иностранных форумах. ;-D (Эта ссылка мне попадалась, когда гуглил ошибку)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Только это не объясняет, почему с sda2-то не загрузилось. Там же система старая.
Это в загрузочном меню она отображается как "старая". А я считаю, что раз установка прошла "от и до", то на этом разделе уже записана "новая" система. Только опознать ее пока не получается...
Это я невнимательно прочитал. Думал, что установка на sda6 была. В общем в grub, судя по скриншоту, для sda2 и sda1 указаны не те uuid. Текущие в выводе blkid.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Подробности и ещё один вариант решения вашей проблемы, вы найдёте тут в комментариях:
Вы имеете ввиду попробовать выполнить от рута:
tune2fs -O ^metadata_csum /dev/sda2
?

Угу.
Фичи можно включать и выключать:
man tune2fs | less -p '-O \[\^\]feature\[,...\]$'

https://ext4.wiki.kernel.org/index.php/Ext4_Metadata_Checksums#TL.3BDR
Но не всё так однозначно, - отключением, что-то приобретёте, что-то потеряете :-) Следующий раздел объясняет это.

При установке систем на p9, точно используются фичи metadata_csum и 64bit. И e2fsprogs версии 1.42, которая в p8, их не поддерживает.
Фича 64bit нужна для
man tune2fs
                   64bit  Enable the  file  system  to  be  larger  than  2^32
                          blocks.

Эта фича при установке систем на p9 включена по-умолчанию.
2 в 32-ой степени 4-рёхкилобайтных блоков, это файловая в терабайтах:
$ echo '2^32*4/1024^3' | bc -l
16.00000000000000000000

Она будет включена, даже если вся система с хомяком устанавливается на раздел, например в 20 гигабайт. Что само-собой заведомо  меньше 16-ти терабайт.

Так что из неподдерживаемых в p6, там, в p9, фича не одна, а две как минимум.

Оффлайн Ed L. Weiss

  • Участник
  • *
  • Сообщений: 5
Угу.
Фичи можно включать и выключать:
Ура, кажись, заработало! :-D Делал так: зашел с live-образа (т.к. прочитал, что tune2fs нужна свежая), открыл эмулятор консоли и:
[root@localhost ~]# tune2fs -O ^metadata_csum,^64bit /dev/sda2
tune2fs 1.44.6 (5-Mar-2019)
Recovering journal.

This operation requires a freshly checked filesystem.

Please run e2fsck -f on the filesystem.

[root@localhost ~]# e2fsck -f /dev/sda2
e2fsck 1.44.6 (5-Mar-2019)
/dev/sda2: recovering journal
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda2: 157058/1537088 files (0.0% non-contiguous), 1636267/6143575 blocks
[root@localhost ~]# tune2fs -O ^metadata_csum,^64bit /dev/sda2
tune2fs 1.44.6 (5-Mar-2019)
Disabling checksums could take some time.
Proceed anyway (or wait 5 seconds to proceed) ? (y,N) <proceeding>
Please run `resize2fs -s /dev/sda2' to disable 64-bit mode.
[root@localhost ~]# resize2fs -s /dev/sda2
resize2fs 1.44.6 (5-Mar-2019)
Converting the filesystem to 32-bit.
The filesystem on /dev/sda2 is now 6143575 (4k) blocks long.
После этого перезагрузился и пункт меню связанный с /sda2 ожил. Название, правда, осталось старым (Altlinux KDEsktop 6.0.1), но загружается с него Simply Linux 9. Экран загрузки скособочен (см. вложение), и сама загрузка виснет, но это уже связано с моей видеокарточкой Nvidia. Когда с live-образа загружался, прописывал в параметрах загрузки "xdriver=vesa" и удавалось запустить графику, но на установленной системе это не прокатило. Но это, видимо, уже надо отдельную тему создавать?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Название, правда, осталось старым (Altlinux KDEsktop 6.0.1)
Это написано в /boot/grub/grub.cfg и меняется где-то в этих конфигах Grub. Ещё на что я внимание не обратил на скриншоте - там написано Grub 1.99. То есть Grub достаточно старый. Видимо тот, который от p6. Но как эти два Grub будут уживаться, это надо уточнить. И ещё я забыл, что Grub работает с файловой системой, так что там, как раз, и могло это самое непонимание фич новой ext4 вылезти.
« Последнее редактирование: 11.05.2020 15:52:45 от asy »

Оффлайн z79av

  • Участник
  • *
  • Сообщений: 91
Я, конечно, прошу прошения, но все-таки осмелюсь предложить самый простой на мой взгляд способ.
Всего лишь запустить установку симпли еще раз. Поставить систему на sda2, а загрузчик на sda (на диск). Grub из p9 наверняка сможет загрузить систему на p6.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Я, конечно, прошу прошения, но все-таки осмелюсь предложить самый простой на мой взгляд способ.
Всего лишь запустить установку симпли еще раз. Поставить систему на sda2, а загрузчик на sda (на диск). Grub из p9 наверняка сможет загрузить систему на p6.
Я так понимаю, нужна ещё возможность доступа из p6 к разделу с p9. А если нет, то можно и так. Только тогда проще вообще https://www.altlinux.org/Восстановление_загрузочной_записи, и переустановить в sda новый Grub.

Оффлайн Ed L. Weiss

  • Участник
  • *
  • Сообщений: 5
Фух, всё, вроде бы наладил, и даже с GUI. :-) Спасибо большое всем за советы!
Это написано в /boot/grub/grub.cfg и меняется где-то в этих конфигах Grub.
Методом научного тыка, я понял, что дело это тонкое и требует определенного багажа знаний.:-D Так например, подмена целого куска кода привела к тому, что редактируемый пункт просто пропал из меню Grub'а. Поэтому, дабы не разломать чего-нибудь ненароком, ограничился тем, что просто поменял название на "Simply Linux 9" и выставил параметры для загрузки, с которыми система более-менее грузится (см. ниже)
menuentry "Simply Linux 9.0 (on /dev/sda2)" --class gnu-linux --class gnu --class os {
savedefault
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root c36e436c-d2a9-48a3-9f48-da444d4f6b34
linux /boot/vmlinuz root=UUID=c36e436c-d2a9-48a3-9f48-da444d4f6b34 ro failsafe vga=normal noapic acpi=off
initrd /boot/initrd.img
}
"Splash" и "panic=30" убрал (не знаю, что это). Из ощутимых "минусов" на данный момент пока заметил два:
1) изображение на экране несколько вытянуто по оси абсцисс,
2) в меню "завершение сеанса" вариант "Выключить" не работает. Приходится выбирать "Перезагрузка", заходить в "шестёрку" и уже в ней выключать. Я так понимаю, это связано с параметром "acpi=off"?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Методом научного тыка, я понял, что дело это тонкое и требует определенного багажа знаний.:-D
Загрузчик должен быть незрим, невесом и не груб. (c) кто-то с LOR :-)
Если бы не https://bugzilla.altlinux.org/34363, я бы Grub всерьёз бы не рассматривал.
"Splash" и "panic=30" убрал (не знаю, что это).
"Splash" - мешающаяся, но иногда красивая, картинка при загрузке
"panic=30" - в случае kernel panic через 30 секунд отправить компьютер в перезагрузку. Но ватчдог в самом ядре, наверное может быть вариант, когда не сработает.