cloud.centos.orgから.qcow2イメージをダウンロードし、仮想環境にロードされたらログインできるようにパスワードを変更しようとしました。 virt-editを使用して/etc/shadowを編集しようとしています。
virt-edit -a CentOS-6-x86_64-GenericCloud-1604.qcow2 /etc/shadow
まず、パスワード生成を使用してopenssl passwd -l
そこに入れてみましたが、うまくいかなかったときに別のコンピュータから暗号化されたパスワードをコピーしてみましたが、やはり動作しませんでした。その後、/etc/passwdを編集して「x」を削除してみました。これにより、パスワードなしでログインできることがわかります。
root::0:0:root:/root:/bin/bash
しかし、それも動作しません。私はコンソールとttyがtty11を介して/ etc / securettyにあることを確認しましたが、ここでどこに行くのかわかりません。
編集:うまくvirt-customize -a CentOS-6-x86_64-GenericCloud-1603.qcow2 --root-password password:password
いきません。
答え1
編集中に仮想マシンがすでに実行されていますか?
「動作しない」とはどういう意味ですか?仮想マシンがシングルユーザーモードになったのか、それともログインを拒否したのですか?
touch /.autorelabel
CentOSではSELinuxが有効になっている可能性が高いため、変更されたVMが起動したときにSELinuxの説明をトリガーするには、VMのルートファイルシステムで同等の作業を実行する必要があります。たとえば、
touch .autorelabel
virt-copy-in -a CentOS-6-x86_64-GenericCloud-1603.qcow2 .autorelabel /
また、画像には/etc/cloud/cloud.cfg
取り付けられていることを示すとcloud-init
その構成(を使用して表示virt-cat -a CentOS-6-x86_64-GenericCloud-1603.qcow2 /etc/cloud/cloud.cfg
)も含まれています。
users:
- default
disable_root: 1 <--- this might be the root cause of your troubles!
ssh_pwauth: 0
[...]
他の場所で提案されているように画像を実行してみましたが、うまくvirt-customize --uninstall cloud-init
いきませんでした。おそらく、CentOS 6は少なくとも現在インストールされているツールを使用してイメージでパッケージ操作を実行するのに古すぎるかもしれませんか?
/etc/init.d/cloud-config
/etc/init.d/cloud-final
とにかく、終了したばかりのスクリプトでVM内部を上書きし、VM内部で実行およびアクセスが可能になったら、無差別代入として無効にできますか?/etc/init.d/cloud-init
/etc/init.d/cloud-init-local
yum erase cloud-init