CentOS 6のサーバーの全ユーザーを別のCentOS 7のサーバーに移行する方法

サーバー

サーバー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で

サーバーBで

これでサーバーを再起動しました。

再起動してみると。。。

ミスった・・Booting from Hard Diskで止まる

Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0003)
Booting from Hard Disk...

image

と表示されて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から起動させます。

image

「Troubleshooting」を選択します。

image

「Rescue a CentOS system」を選択します。

image

image

「Continue」を押します。

image

「OK」を押します。

image

「OK」を押します。

image

シェルになりました。

システムは、/mnt/sysimage にマウントされています。

さらに詳しくは以下の記事をご覧ください。

CentOS 7が「Booting from Hard Disk...」で起動しない レスキューモードでgrub2を再設定した
CentOS 7が「Booting from Hard Disk...」で起動しない レスキューモードでgrub2を...

CentOS6からCentOS7へユーザーの正しい移行手順

サーバーAから

/home、

/etc/passwd、

/etc/shadow、

/etc/group、

/etc/gshadow の5つのファイルをサーバーBにコピーします。

サーバーAで

サーバーBで

ここまではミスった移行手順の通りです。

次に取りあえず、etc.tar.gzについては、/root直下で展開しておきます。

この後、

とします。

これらのコマンドで編集すると、

/etc/passwd-、

/etc/shadow-、

/etc/group-、

/etc/gshadow-

といった、うしろにハイフン ”-“ 付きのファイルが自動的に作成されます。

うしろにハイフン "-" がついたファイルはなんか気持ち悪いですが、

これらの ”-“ 付きのファイルは、システムが自動作成するバックアップファイルです。

以上でユーザーの移行が完了したので、サーバーBを再起動します。

まとめ

まとめというか、ミスった移行手順で

/etc/passwd

とかを上書きして再起動したのは、極めて安易でした。

冷静に考えてみれば決してやってはいけないことです。

さくらのVPSサーバー

↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ

SSDプランが月々685円から使える!さくらのVPS