LINUX.ORG.RU
ФорумAdmin

Ошибка монтирования при клонировании Linux

 ,


0

1

Добрый день соратники! Подскажите по проблеме имеется комп с линуксом и дисковый массив работает на scsi raid контролере. Линукс ставили давно в году 2008-2009, что за версия не ясно, так как загружается он в оболочку которая не позволяет выйти на командную строку. По итогу суть в другом CloneZilla сделал клон scsi диска на sata диск, так как scsi raid контролер начинает выходить из строя. Но при загрузке с sata диска выходит ошибка монтирования: mount: mounting /dev/disk/by-id/scsi-3500000ell0ff23d3-part2 on /mnt failed: No such file or directory ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Type ‘exit’ when things are done. bin/sh: can’t access tty; job control turned off

в моем понимании в fstab нужно прописать новый том монтирования с sata диска, но как понять в какой позиции это диск находится, так как команду просмотра подключенных дисков выполнить невозможно. Спасибо буду рад любой помощи.

Перемещено hobbit из general



Последнее исправление: dataman (всего исправлений: 2)

Что за дистрибутив?

Похожие темы:

И это далекооо не полный список. Ищите, Шура, ищите :) Ну, а не найдёте, так уж и быть, спросите у ИИ. Ну, а если ИИ не поможет, то… :)

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)

все просто, в fstab монтирование директорий прописано по аппаратному пути подключения носителя, о чем и говорит строчка «/dev/disk/by-id/scsi-3500000ell0ff23d3-part2»
в клонированном носителе естественно строчка будет другая ибо оборудование другое.
соответственно надо менять строчки монтирования в fstab.
имхо лучше на uuid, тогда будет отвязка и от носителя и от аппаратуры подключения.
ну и вообще поковырять поизучать что там наделано в столь древнем линухе.

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

fstab, конечно, отредактировать можно. Но, только эти сообщения от скриптов в initramfs, который создан с помощью mkinitrd и просто редактирование fstab ничего не поменять. По идее, нужно будет всё монтировать, чрутиться туда и пересобирать initramfs (командой mkinitrd). Но, если там:

не позволяет выйти на командную строку.

там может быть порезаная система, что в ней и mkinitrd нет. И тогда по версиям библиотек и пр. определять что за дистр в основе, качать пакеты...

в столь древнем линухе

Если есть /dev/disk/by-id/, дак вполне современный, не так много изменений с момента возникновения udev.

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

Как я понял, речь об embedded решении… а там и не такая хрень встречается. Я бы даже не удивился серверу, что требует для загрузки дискеты с MS-DOS, который уже запускает ядро Linux через loadlin.exe, потому что BIOS у ПК не умеет грузиться с SCSI дисков, только с IDE 3,5 дюймового флоппи.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от mky

хых блин, такого не надумал !!
но думаю несколько другое. при загрузке ядра ему параметром передается указанием на раздел, монтируемый корнем, и далее с онного раздела запускается /sbin/init для инициации системы. но у меня рут=-разде прописан через UUID т.е.

echo    'Loading Linux 6.11.0-25-generic ...'   
linux   /boot/vmlinuz-6.11.0-25-generic root=UUID=65a3eb09-6f4.....

а тут какието левые идентификаторы. вполне возможно прокатит при загрзуке отредактировать строчку запуска ядра через режим edit груба. а уже в системе сделать grub-update

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

конфиг lilo по умолчанию лежит в /etc/lilo.conf
Вам нужно его поправить (указать новый root) и установить его заново в MBR.
Если в составе SystemRescueCD нет lilo, то запись в MBR может потребовать доп. действий (chroot).
Поэтому я бы попробовал для начала указать новый root в ходе загрузки: https://tldp.org/HOWTO/LILO.html#toc2.3

When you see the Lilo prompt, you can hit the <Tab> key to show the list of possible choices. If Lilo is not configured to be interactive, press and hold the <Alt> or <Shift> key before the ``LILO'' message appears.

If you choose to boot a Linux kernel, you can add command-line arguments after the name of the system you choose. The kernel accepts many command-line arguments. All the arguments are listed in the ``BootPrompt-HOWTO'' by Paul Gortmaker, and I won't replicate it here. A few command line arguments, however, are particularly important and worth describing here:

    root=: you can tell the Linux kernel to mount as root a different partition than the one appearing in /lilo.conf. For example, my system has a tiny partition hosting a minimal Linux installation, and I've been able to boot the system after destroying my root partition by mistake. 

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

В современном SystemRescueCD LiLo нету. Главный минус LiLo в том, что даже если указать в конфиге root=/dev/disk/by-UUID/$UUID, то LiLo все равно сконвертирует это в LBA-адрес, который встроится в код загрузчика в MBR. $UUID нужно заменить на реальный UUID раздела, получаемого из вывода lsblk.

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

В man пишут, что по UUID указать можно, и так оно и будет передано в ядро.
https://linux.die.net/man/5/lilo.conf

(22.6) The root filesystem may also be specified by a LABEL= or UUID= directive, as in '/etc/fstab'. In this case, the argument to root= must be enclosed in quotation marks, to avoid a syntax error on the second equal sign; viz.,

root="LABEL=MyDisk"

Note: The command line root= parameter passed to the kernel will be: 'root=LABEL=MyDisk'; i.e., without the quotation marks.

Однако, судя по /dev/disk/by-id/ ошибка действительно происходит внутри initrd (со своим fstab). Тогда возможно правка lilo.conf бесполезна.

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

Сейчас поменял в fstab все на UUID,

В каком? Который /mnt/d1/etc/fstab (на вашей картинке). До него скорее всего загрузка не доходит вообще.

в лило поменял строку root=UUID=

В /mnt/d1/etc/lilo.conf ? Само по себе это не достаточно, нужно ещё перезаписывать MBR.
Я вообще-то предлагал менять не в конфиге lilo, а прямо при загрузке через <Tab> или <Alt> or <Shift>.

Но вообще скорее всего Вам нужно перепаковать initrd.
Попробуйте поискать fstab в каталоге (и подкаталогах) /mnt/d1/boot/initrd-tree.

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

Нашел версию Linux оказался Slackware 13.1.0.

В /mnt/d1/etc/lilo.conf ? Само по себе это не достаточно, нужно ещё перезаписывать MBR. Я вообще-то предлагал менять не в конфиге lilo, а прямо при загрузке через или or .

Так он показывает загрузчик, но менять как? вот ссылка что в загрузчике https://ibb.co/DHJsQX4J

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

Попробуйте поискать fstab в каталоге (и подкаталогах) /mnt/d1/boot/initrd-tree.

fstab пустой в initdr, но зато нашел отсыл к scsi который пытается смонтировать система при запуске в /mnt/d1/boot/initrd-tree https://ibb.co/7dtg1NQJ

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

Качайте Slackware-13.1, там есть lilo. Грузитесь, входите как рут, монтируете корень, /dev, /proc и /sys, выполняете chroot, смотрите, как определяется корень, правите fstab и выполняете lilo. Кстати, Slackware или Slackware64?

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

Хорошо, еще, в Slackware есть скрипт mkinitrd-command-generator.sh, он подскажет, какие модули нужно в initrd добавить. Выполните этот скрипт и сравните с тем, что записано в конфиге, при необходимости поправьте и пересоберите initrd.

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

А зачем, именно slackware? Если у него в системе есть lilo, то достаточно, что он сделат туда chroot, а если там нет, lilo (самой команды) то его сначала нужно в chroot скопировать.

И, в целом, ТСу лучше lilo лишний раз не запускать. У lilo был прикол, что он определял BIOS disk number по текущей конфигурации, а при загрузке с флешке она может отличаться от то, что будет при загрузке с диска, и там приходилось писать в конфиг что-то типа:

boot=/dev/sdb
disk=/dev/sdb
  bios=0x80
А с неправильным конфигом лило писал неправильный boot-сектор и потом получалось ″LI″ при загрузке.

mkinitrd -F

Там, вроде, нужно будет версию ядра указывать, иначе она берётся из «uname», а при chroot там может быть не то. И, после изменения initramfs образа (initrd-файла), нужно запускать lilo, так как lilo при загрузке читает не через драйвер ФС, а по номерам блоков.

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

Да и потом, в любом случае ТСу придëтся отдавать команду lilo, потому что это единственный способ изменить настройки загрузчика. Правки конфига здесь недостаточно, в отличие от GRUB.

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

Да, но может ему вобще хватит прописать root=/dev/sda2 в командную строку lilo, чтобы система загрузилась и тогда, что lilo, что mkinitrd ведут себя попроще, чем из chroot.

У меня сейчас нифига не грузятся картинки от ТС, поэтому я не понял, по какой причине он не пытается что-то ввести в командную строку lilo. И насколько мудрёный у него lilo.conf тоже не знаю.

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

Может и есть версия ядра. Но вот нашёл, на всякий случай оставлю здесь: https://ftp.riken.jp/Linux/slackware/slackware64-13.1/README.initrd Там сам Патрег даёт такую команду:

mkinitrd -c -k 2.6.33.4 -m reiserfs

то есть указывает и версию ядра и модуль для корневой ФС, и ни слова про конфиг. Может его (конфига) тогда и не было?

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

Скачал пакет mkinitrd, там пример конфига есть, лежит в /etc. Думаю, это при первичной установке системы было нужно, когда конфиг ещё не написан. Создать конфиг можно с помощью /usr/share/mkinitrd/mkinitrd_command_generator.sh.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)

Кстати, в систему установлено ещё и huge-ядро, ему initrd не нужен. Средствами GRUB из SystemRescueCD можно загрузиться с этим ядром и внести необходимые коррективы прямо в работающей системе.

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

Вот тут да, не уверен, что разработчики SystemRescueCD положили в дистрибутив reiserfs.mod GRUB-а. Но попробовать можно: выйти в режим командной строки, сделать insmod reiserfs, далее set root=(hd0,2), далее linux /boot/vmlinuz-huge, далее скомандовать boot.

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

Уточню:

linux /boot/vmlinuz-huge-2.6.33.4

или TAB нажимать после "-h", чтобы дополнило. А то завтра ТС ещё недопишет имя файла с образом ядра и будет ещё одна картика на ibb.

Но это только для посвящённых :)

Да ТСа пока вобще не посвятили, что нужно TAB нажать, чтобы в Lilo из меню в командную строку попасть.

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

Да, но может ему вобще хватит прописать root=/dev/sda2 в командную строку lilo, чтобы система загрузилась и тогда, что lilo, что mkinitrd ведут себя попроще, чем из chroot.

Про <Tab> я уже дважды писал.
Не уверен, пробовал ли ТС переопределять там root.
(и у меня нет Lilo под руками, чтобы проверить, как фактически это работает).

У меня сейчас нифига не грузятся картинки от ТС, поэтому я не понял, по какой причине он не пытается что-то ввести в командную строку lilo. И насколько мудрёный у него lilo.conf тоже не знаю.

картинки с /etc/lilo.conf не было.
Однако в /boot/ присутствует initrd-tree. И ТС нашел там файл rootdev, где прописан /dev/disk/by-id/scsi-3500000ell0ff23d3-part2
https://ibb.co/CpVhV80r https://ibb.co/7dtg1NQJ

я не уверен, относительно роли этого файла в initrd и его приоритете по отношению к параметру ядра root (наверное yars068 знает лучше). Но полагаю, что ошибка из-за него.

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

Про я уже дважды писал. Не уверен, пробовал ли ТС переопределять там root.

Спасибо за вашу помощь, но TAB не работает в lilo у меня отработало Ctrl: https://ibb.co/v91vBXw

картинки с /etc/lilo.conf не было.

https://ibb.co/B56Z1r9n https://ibb.co/LhNg2L0m руками поправил Root на UUID

domovoi
() автор топика