サーバーA(CentOS 6)のユーザーをサーバーB(CentOS 7)に移行する機会があったので覚え書きをまとめました。
最初にミスった移行手順
最初に、ミスった移行手順です。
今まで運用していた
サーバーA(CentOS 6)と
新規にOSをインストールしたばかりのサーバーB(CentOS 7)
があったとします。
サーバーAからサーバーBにユーザーの移行を試みました。
サーバーAから
/home、
/etc/passwd、
/etc/shadow、
/etc/group、
/etc/gshadow
の5つのファイルをサーバーBにコピーします。
サーバーAで
1 2 3 4 5 6 |
# cd /home # tar -zcvf home.tar.gz home # scp home.tar.gz root@(サーバーB) # cd /etc # tar -zcvf etc.tar.gz passwd shadow group gshadow # scp etc.tar.gz root@(サーバーB) |
サーバーBで
1 2 3 4 5 6 7 8 9 10 11 |
# mv /home /home-orig # mv /etc/passwd /etc/passwd-orig # mv /etc/shadow /etc/shadow-orig # mv /etc/group /etc/group-orig # mv /etc/gshadow /etc/gshadow-orig # cd /home # gunzip home.tar.gz # tar -xvf home.tar # cd /etc # gunzip etc.tar.gz # tar -xvf etc.tar |
これでサーバーを再起動しました。
再起動してみると。。。
ミスった・・Booting from Hard Diskで止まる
Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0003)
Booting from Hard Disk...
と表示されて2度と起動しなくなります。
間違いは、
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
を上書きして起動してしまったことです。
同じCentOS 6ならうまくいくかもしれませんが、OSのバージョンが違うので、
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
については、/homeに存在するような必要なユーザーとグループを選別してコピー&ペーストしなくてはいけません。
ちなみに「Booting from Had Disk...」で起動しなくなった場合は、CD/DVDから起動させます。
「Troubleshooting」を選択します。
「Rescue a CentOS system」を選択します。
「Continue」を押します。
「OK」を押します。
「OK」を押します。
シェルになりました。
システムは、/mnt/sysimage にマウントされています。
さらに詳しくは以下の記事をご覧ください。
CentOS6からCentOS7へユーザーの正しい移行手順
サーバーAから
/home、
/etc/passwd、
/etc/shadow、
/etc/group、
/etc/gshadow の5つのファイルをサーバーBにコピーします。
サーバーAで
1 2 3 4 5 6 |
# cd /home # tar -zcvf home.tar.gz home # scp home.tar.gz root@(サーバーB) # cd /etc # tar -zcvf etc.tar.gz passwd shadow group gshadow # scp etc.tar.gz root@(サーバーB) |
サーバーBで
1 2 3 4 5 6 7 8 |
# mv /home /home-orig # mv /etc/passwd /etc/passwd-orig # mv /etc/shadow /etc/shadow-orig # mv /etc/group /etc/group-orig # mv /etc/gshadow /etc/gshadow-orig # cd /home # gunzip home.tar.gz # tar -xvf home.tar |
ここまではミスった移行手順の通りです。
次に取りあえず、etc.tar.gzについては、/root直下で展開しておきます。
1 2 3 |
# cd /root # gunzip etc.tar.gz # tar -xvf etc.tar |
この後、
1 2 3 4 |
# vipw /etc/passwd (/root/passwd から必要なユーザーをコピー&ペースト) # vipw -s /etc/shadow (/root/shadow から必要なユーザーをコピー&ペースト) # vigr /etc/group (/root/group から必要なグループをコピー&ペースト) # vigr -s /etc/gshadow (/root/gshadow から必要なグループをコピー&ペースト) |
とします。
これらのコマンドで編集すると、
/etc/passwd-、
/etc/shadow-、
/etc/group-、
/etc/gshadow-
といった、うしろにハイフン ”-“ 付きのファイルが自動的に作成されます。
うしろにハイフン "-" がついたファイルはなんか気持ち悪いですが、
これらの ”-“ 付きのファイルは、システムが自動作成するバックアップファイルです。
以上でユーザーの移行が完了したので、サーバーBを再起動します。
まとめ
まとめというか、ミスった移行手順で
/etc/passwd
とかを上書きして再起動したのは、極めて安易でした。
冷静に考えてみれば決してやってはいけないことです。
さくらのVPSサーバー
↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ
SSDプランが月々685円から使える!さくらのVPS
コメント
[…] […]