web-dev-qa-db-ja.com

HPコンピューターに新しいイメージを配置した後、/ mnt / sysimageをchrootできません

私はClonezillaを使用して、新しいCentOS7イメージをコンピューターに配置しています。それらのほとんどはLenovoデスクトップであり、現在すべて古いイメージを実行しているHPデスクトップがいくつかあります。

Clonezillaが新しいイメージに復元した後に新しいイメージが機能するためには、CentOS 7レスキューディスクを備えたUSBを挿入し、起動してchroot /mnt/sysimageで始まるいくつかのコマンドを実行する必要があります。

これはLenovoデスクトップでは問題なく機能しますが、HPデスクトップでこのコマンドを実行すると、次のエラーメッセージが表示されます。

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

LenovoとHPの両方のマシンのHDサイズは同じ(80 GB)であり、両方にまったく同じ新しいイメージを配置しています。なぜ一方が機能し、もう一方が機能しないのか、私は一生理解できません。新しいイメージを解体して最初からやり直したくありません(HPのマシンは約5台、残りはLenovoです)。 。

ChrootコマンドがHPマシンで機能しない理由について誰かが洞察を提供できますか?ありがとう。

2
snowfi6916

そのため、CentOS 7レスキューディスクを挿入したときに、HPマシン(および新しいモデルのLenovo)がLinuxパーティションを/dev/sdbではなく/dev/sdaにマウントしていることがわかりました。

これは、USBにレスキューディスクがあったため、システムがUSBを別のパーティションではなく/dev/sdaにマウントしたためです。

これを回避するために、CentOS 7のISOをダウンロードし、DVDに書き込んで、それを起動しました。 Linuxパーティションが/dev/sdaにあるので、問題なくchrootコマンドを実行できるようになりました。

あなたの提案と助けをありがとうございました。

0
snowfi6916

/ 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
1
Akash Rawal

エラーメッセージは誤解を招くものであり、/bin/bashのいずれかが存在しないことを意味するだけです(あなたの場合ではありません)。または、/bin/bashによって使用されるダイナミックローダーが存在しないこと(おそらくあなたの場合)。または、そのrsyncを使用して、リンクの保持フラグなしでusr、lib、およびlib64フォルダーを作成しました。

最も可能性の高い説明は、libおよび/またはlib64フォルダーがchrootから欠落していることです。

リンクを保持しながら、3つのusr、lib、およびlib64フォルダーをコピーするか、単にmount --bind/mnt/sysimageにコピーする必要があります。

0
harrymc

一部のマシンで動作するが他のマシンでは動作しない場合は、アーキテクチャが異なる可能性があります。一方が32ビットでもう一方が64ビットであると思われます。両方のアーキテクチャにバイナリと共有ライブラリが存在することを確認する必要があります。そうしないと、USBスティックが両方で機能しません。 。

0
stuartah