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...

 

 

と表示されて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 にマウントされています。

 

 

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

CentOS 7が「Booting from Hard Disk...」で起動しない レスキューモードでgrub2を再設定した
CentOS 7が「Booting from Hard Disk...」で起動しないので、レスキューモードでgrub2を再設定しました。 CentOS 7が重い さくらのVPSの上で、CentOS 7をインストールしてGitlabを...

 

 

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