1

Я использую Clonezilla для установки нового образа CentOS 7 на наши компьютеры. Большинство из них - настольные ПК Lenovo, и у нас есть несколько настольных ПК HP, на которых в настоящее время работает старый образ.

Чтобы новый образ заработал после того, как Clonezilla восстановит его в новом образе, нам нужно вставить USB с спасательным диском CentOS 7 и загрузиться с ним, чтобы выполнить некоторые команды, начиная с chroot /mnt/sysimage .

Это прекрасно работает на настольных ПК Lenovo, но когда я запускаю эту команду на настольных ПК HP, я получаю следующее сообщение об ошибке:

chroot: failed to run command ‘/bin/bash’: No such file or directory

У обоих компьютеров Lenovo и HP одинаковый размер HD (80 ГБ), и я помещаю на них одно и то же новое изображение. Я не могу понять, почему один работает, а другой нет, и я не хочу разбирать новый образ и начинать с нуля (у нас только около 5 машин, которые являются HP, остальные - Lenovo),

Может ли кто-нибудь объяснить, почему команда chroot не работает на машинах HP? Благодарю.

4 ответа4

1

Похоже, что /mnt /sysimage установлен не так, как вы ожидаете. Команда

mount | grep "/mnt/sysimage"

должен сказать вам, что смонтировано в /mnt/sysimage . Если нет выходных данных, /mnt/sysimage не монтируется, в этом случае попробуйте смонтировать его вручную. Используйте команду:

cat /proc/partitions | tr -s ' ' | cut -d ' ' -f 5

получить список разделов. Тогда попробуй

mount /dev/<partition_name> /mnt/sysimage

Возможно, вам придется угадать правильное имя раздела. Мы не можем судить по предоставленной вами информации. Чтобы попробовать другой раздел, размонтируйте предыдущий раздел

umount /mnt/sysimage
0

Поэтому я обнаружил, что машины HP (вместе с более новой моделью Lenovos) монтировали разделы Linux на /dev/sdb вместо /dev/sda когда я вставил CentOS 7 Rescue Disk.

Это было потому, что у меня был аварийный диск на USB, поэтому система смонтировала USB на /dev/sda вместо другого раздела.

Чтобы обойти это, я скачал ISO для CentOS 7, записал его на DVD и загрузил до него. Теперь я могу выполнить мою команду chroot без проблем, поскольку раздел Linux теперь находится в /dev/sda .

Спасибо всем за ваши предложения и помощь.

0

Сообщение об ошибке вводит в заблуждение и означает только то, что /bin/bash не существует (не ваш случай); или что динамический загрузчик, используемый /bin/bash , не существует (вероятно, ваш случай); или даже этот rsync использовался для создания папок usr, lib и lib64 без флага сохранения ссылок.

Наиболее вероятным объяснением является то, что в вашей папке отсутствуют папки lib и / или lib64.

Вам следует либо скопировать три папки usr, lib и lib64 при сохранении ссылок, либо просто mount --bind их в /mnt/sysimage .

0

Если это работает на некоторых машинах, но не на других, то возможно, что архитектуры разные. Я подозреваю, что одна была 32-битной, а другая - 64-битной - необходимо обеспечить наличие двоичных файлов и разделяемых библиотек для обеих архитектур, иначе USB-флешка не будет работать для обеих.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .