2013年 05月 10日
XEN 仮想VMの(DomU) root パスワードのリセット SUSE 11.2 編
Translate English excite
--
しばらく使っていなかった XEN の仮想 domU に root ログインできなくなりました。私はパスワード変えた記憶はありません。私には結局この方法が一番簡単でした。
-ヒントとなったフォーラムの書き込み-
https://forums.suse.com/archive/index.php/t-761.html
そうか kernel に ' init=/bin/bash ' を渡せばいいんだ。ということで
まず Original の vm ファイルを確認
xen-dom0:/etc/xen/vm # cat my-domu
name="my-domu"
description="None"
uuid="d780c050-b4f8-323c-04a8-fe8f9a7438d6"
memory=512
maxmem=512
vcpus=2
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=0
keymap="ja"
builder="linux"
bootloader="/usr/bin/pygrub"
bootargs=""
extra=" "
disk=[ 'file:/var/lib/xen/images/my-domu/my-domu.disk0.raw,xvda,w'', ]
vif=[ 'mac=00:16:3e:22:01:99,bridge=br0', ]
vfb=['type=vnc,vncunused=1']
extra=" " の部分が空欄(space)になっています。
vmファイルをコピーして
xen-dom0:/etc/xen/vm # cp my-domu my-domu-rescue
vi で編集しました。extra=" " の部分を extra=" init=/bin/bash" とします。init の前space が入っています。
# xm create my-domu extra=1 あるいは =single
と実行してもシングルユーザモード(runlevel:1)で起動できるのですが、それでも root のパスワードが求められます。これは他のディストリビューションではあまりないことのようです。
- orz begin -
xen-host:/etc/xen/vm # xm create myvm extra=" single"
Using config file "./myvm". <-- xm create -c /etc/xen/vm/myvm extra=" single"もOK
Started domain myvm (id=26)
xen-host:/etc/xen/vm # xm console myvm
[ 0.000000] Initializing cgroup subsys cpuset
: 中略
[ 3.757901] kjournald starting. Commit interval 15 seconds
[ 3.757971] EXT3-fs (xvda2): using internal journal
[ 3.758025] EXT3-fs (xvda2): mounted filesystem with ordered data mode Give root password for maintenance
(or type Control-D to continue):
Login incorrect.
Give root password for maintenance
(or type Control-D to continue): sulogin: read(/dev/xvc0): Operation not permitted
Give root password for maintenance
(or type Control-D to continue):
-- endof ooops! orz---
そこで extra" /bin/bash" オプションで起動します。
xen-dom0:/etc/xen/vm # cat my-domu-rescue
name="my-domu"
description="None"
uuid="d780c050-b4f8-323c-04a8-fe8f9a7438d6"
memory=512
maxmem=512
vcpus=2
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=0
keymap="ja"
builder="linux"
bootloader="/usr/bin/pygrub"
bootargs=""
extra=" init=/bin/bash" <--- ※init の前にスペースが入っています。
disk=[ 'file:/var/lib/xen/images/my-domu/my-domu.disk0.raw,xvda,w'', ]
vif=[ 'mac=00:16:3e:22:01:99,bridge=br0', ]
vfb=['type=vnc,vncunused=1']
xen-dom0:/etc/xen/vm #
編集した vm ファイルを -c オプションで起動します。
xen-dom0:/etc/xen/vm # xm create -c my-domu-rescue
Using config file "./my-domu-rescue".
: 中略
xen-dom0:/etc/xen/vm #
なんとか起動できたので passwd コマンドで root password を変更(reset)します。
※ /etc/shadow の root のハッシュを消してもだめでした。
xm console ではここまで画面が出ないので YaST2 > Virt-Manager のスクリーンから操作します。
ここから halt 出来ればよいのですが halt できない(なぜ?)ので xm destroy my-domu しました。
元の vm ファイルで起動します。
xen-dom0:/etc/xen/vm # xm create my-domu
Using config file "./my-domu".
Started domain my-domu (id=23)
xm console で接続します。
xen-dom0:/etc/xen/vm # xm console my-domu
: 中略
Welcome to SUSE Linux Enterprise Server 11 SP2 (x86_64) - Kernel 3.0.13-0.27-xen (xvc0).
my-domu login: root
Password: reset-password
Last login: Fri May 10 19:03:06 JST 2013 on xvc0
You have new mail.
Directory: /root
Fri May 10 19:09:34 JST 2013
my-domu:~ #
ログインできました。
こちらでは SUSE 10 でのレスキューモードでの起動方法が書かれていますが、 x64 版ではうまく動きませんでした。 i586 版は手元にないので、ただいまダウンロード中です。
XEN: How to boot SLES para-virtual DomU's into the Rescue System for disaster recovery
待てないので色々いじくっていると直りました。
islandcenter.jp
-keyword-
SUSE SLES 11 sp2 How to reset xen gest root password 仮想化 パスワードリセット()