LINUX.ORG.RU

Как запустить update-initramfs из загрузочного USB?

 


0

1

Добрый день. Нужно обновить initramfs но не могу загрузить систему по определенным причинам, корневой каталог системы монтирую в /mnt/root, загружаюсь с live-usb. Можно сделать как-нибудь обновить «sudo update-initramfs -u -k all» в корневом каталоге, который примонтирован в /mnt/root?

Можно, делаешь туда chroot и выполняешь команду.

Неужели за год использования Linux ты первый раз слышишь про chroot?

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

Можно, делаешь туда chroot и выполняешь команду.

Можешь подсказать как именно будут выглядеть команды?)

Неужели за год использования Linux ты первый раз слышишь про chroot?

За полтора. Слышал, но не использовал.)

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

Гугл совсем не отвечает?

В

man chroot
тоже ничего нет?

Уже бы давно узнал что нужно сделать, а не спрашивал.

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

Уже бы давно узнал что нужно сделать, а не спрашивал.

Да вот уже и загуглил, и пока не получается.

ubuntu@ubuntu:/mnt/flash$ chroot /mnt/flash
chroot: cannot change root directory to '/mnt/flash': Operation not permitted
ubuntu@ubuntu:/mnt/flash$ sudo chroot /mnt/flash
chroot: failed to run command ‘/bin/bash’: No such file or directory

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

Подумай!

Без параметров в chroot запускается такой же интерпретатор, что и используемый в текущем окружении.

Если в системе, куда ты делаешь chroot нет /bin/bash, то ты должен указать существующей в ней интерпретатор.

Подумай какой shell там и укажи его.

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

Ну как бы для сборки initramfs нужно немного больше

1) желательно, чтобы livecd/liveusb был от того же семейства ОС и с не слишком отличающейся версией ядра

2) до chroot нужно ещё смонтировать всё динамическое ( /dev, /proc, /sys, если есть что-то ещё - тоже ) через mount -o bind

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

1) желательно, чтобы livecd/liveusb был от того же семейства ОС и с не слишком отличающейся версией ядра

Зачем?

2) до chroot нужно ещё смонтировать всё динамическое ( /dev, /proc, /sys, если есть что-то ещё - тоже ) через mount -o bind

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

А для простого запуска приложения, выполнения в данном случае команды генерации initramfs достаточно только смонтированной корневой файловой системы, если прочие части файловой систмы вынесены отдельно, то их тоже нужно смонтировать.

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

А для простого запуска приложения, выполнения в данном случае команды генерации initramfs достаточно только смонтированной корневой файловой системы, если прочие части файловой систмы вынесены отдельно, то их тоже нужно смонтировать.

Млять, ну и как это сделать? Я с этой системой весь день провозился, остался последний момент и трудно более конкретно сказать какие именно команды?

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

Не нужно, они нужны только

не будь столь категоричен, в зависимости от настроек скрипты могут пытаться определить необходимые модули для работы, а о конфигурации тут ничего не сказано.

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

Я тебе всё что нужно написал.

Без параметров в chroot запускается такой же интерпретатор, что и используемый в текущем окружении.

Если в системе, куда ты делаешь chroot нет /bin/bash, то ты должен указать существующей в ней интерпретатор.

Подумай какой shell там и укажи его.

Прочти это ещё раз.

Не ну если тебе хочется чувствовать себя дураком, то вот команда:

sudo chroot /mnt/flash /bin/интерпретатор
Какой он у тебя?

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

ubuntu@ubuntu:/mnt/flash$ sudo chroot /mnt/flash

вначале же был /mnt/root ?

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

Не ну если тебе хочется чувствовать себя дураком, то вот команда:

sudo chroot /mnt/flash /bin/интерпретатор

Какой он у тебя?

....

Для начала, что такое интерпретатор и как узнать какой он? У меня в каталоге boot, который я в /mnt/flash монтирую, есть только каталоги:

grub
-- fonts
-- i386-pc
-- locale
-- grub.cfg
-- grubenv
unicode.pf2
system.map-4.9.0-8-amd64
initrd.img-4.9.0-8-amd64
config-4.9.0-8-amd64
vmlinuz-4.9.0-8-amd64

ubuntu@ubuntu:/mnt/flash$ sudo chroot /mnt/flash

вначале же был /mnt/root ?

В /mnt/root я смонтировал нужный корень с системой, и рядом с root смотрировал flash (/mnt/flash)

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

если ты например собрался устанавливать загрузчик.

Возможно я привык делать лишние действия, чтобы лишний раз не продумывать всё до мелочей. Потом как-нибудь проверю

А для простого запуска приложения, выполнения в данном случае команды генерации initramfs достаточно только смонтированной корневой файловой системы

При сборке initramfs нужна информация о модулях, которые требуются для успешной загрузки. Не уверен, что все утилиты для сборки смогут получить эту информацию без sysfs, procfs и udev

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

У меня в каталоге boot, который я в /mnt/flash монтирую

а должен быть смонтирован в /mnt/root/boot и чрутится надо в /mnt/root

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

и что ты сделал с initrd.img-4.9.0-8-amd64, что он перестал быть рабочим? может не initramfs надо обновлять?

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

Для начала, что такое интерпретатор и как узнать какой он?

Это командная оболочка bash, zsh, что-то другое.

У меня в каталоге boot, который я в /mnt/flash монтирую, есть только каталоги:

Что? Тебе нужно делать chroot не boot раздел, а в корневую файловую систему.

Т.е. в начале монтируешь корневую файловую систему:

mount /dev/корневой раздел /mnt/root
mount /dev/boot_раздел /mnt/root/boot
chroot /mnt/root /bin/интерпретатор

В /mnt/root я смонтировал нужный корень с системой, и рядом с root смотрировал flash (/mnt/flash)

Вот в root тебе и надо делать chroot, только предварительно в root/boot смонтируй файловую систему с загрузчиком и ядрами.

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

По поводу последнего соглашусь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.