XEN 仮想VMの(DomU) root パスワードのリセット SUSE 11.2 編

この例は SUSE Linux Enterprise Server 11 sp2 での事例です。他のディストリビューションでは参考程度にとどめて置いてください。

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" <-- " sinhle" の前にスペース
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 のハッシュを消してもだめでした。

XEN 仮想VMの(DomU) root パスワードのリセット SUSE 11.2 編_a0056607_1936363.jpg

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 仮想化 パスワードリセット()
by islandcenter | 2013-05-10 19:42 | XEN | Comments(0)