一言でいうと、「別のマシンにインストールしたUbuntuをtarで固め、それを専用サーバーにアップロードして解凍・展開する」です。debootstrap(とchroot)を用いる方法では、エレガントに、次のパターンが可能でした。32ビット版Ubuntu→32ビット版Ubuntu・・・/(ルート)パーティションを変更(LVM化、ext4化、等)したい場合等に便利。〃32ビット版Linux→32ビット版Ubuntu64ビット版Linux→64ビット版Ubuntuこのtarを用いる方法は、エレガントではない(=とてもプリミティブ/原始的な)方法ですが、非常に汎用的で、次のパターンが可能です。32ビット版Ubuntu→32ビット版Ubuntu・・・/(ルート)パーティションを変更(LVM化、ext4化、等)したい場合等に便利。32ビット版Ubuntu→64ビット版Ubuntu64ビット版Ubuntu→32ビット版Ubuntu64ビット版Ubuntu→64ビット版Ubuntu・・・/(ルート)パーティションを変更(LVM化、ext4化、等)したい場合等に便利。32ビット版Linux→32ビット版Ubuntu32ビット版Linux→64ビット版Ubuntu64ビット版Linux→32ビット版Ubuntu64ビット版Linux→64ビット版Ubuntu特にdebootstrap編ではできなかった「32ビット版と64ビット版の入れ替え」が可能なのが本tar編の最大の特長といえるでしょう。本Tipsの対象32ビット版Ubuntuがデフォルトな専用サーバーを、64ビット版Ubuntuにしたい(あるいは、64ビット版Ubuntuがデフォルトな専用サーバーを、32ビット版Ubuntuにしたい)Ubuntu以外のLinuxディストリビューション(RHELやCentOS等の32/64ビット版)がデフォルトな専用サーバーを、Ubuntu(32/64ビット版)化したいUbuntu(32/64ビット版)の/(ルート)パーティションを変更(LVM化、ext4化、等)したい本Tipsの対象外Ubuntu(32/64ビット版)がデフォルトな専用サーバーを、Ubuntu以外のLinuxディストリビューション(32/64ビット版)にしたいこれも技術的には十分可能ですが、本Wikiや本Tipsの趣旨外のため、ここでは対象外とします。必要なもの専用サーバーローカルPC・・・・おてもとのPC。物理的なPCでなくても、VMwareやVirtualBoxやParalleles等の仮想デスクトップ環境でも可。設定ファイルtarを専用サーバーにアップロード&解凍(展開)後に、最低限必要となる設定ファイルは次の通りです。(要編集)ここまでを正しく設定すればとりあえず新Ubuntuが起動します。udevなLinuxやUbuntu間での移行の場合は、このままではeth0がうまく認識されず、sshでアクセすることができない場合があります。eth0が正しく認識され、sshでアクセス可能にするには、次の設定ファイルの編集(調整)が必要となります。U2U)する場合、「コピー」となっているファイルは、元Ubuntuの設定ファイルをそのまま新UbuntuにコピーするだけでOkです。よって、U2Uの場合、実際に編集が必要となる設定ファイルは「要編集」となっている2つのファイル(/etc/fstabと/boot/grub/grub/cfg)だけです。apparmorこのtarでの移行方法でも、apparmorが原因でうまくいかない場合があったりします。--purge)しておくことを推奨します。今回は、次の目標で進めます。VGN-TZ90NSを用いました。32ビット版Ubuntu(i386)をインストールします。これを「元OS」と呼ぶことにします。▽おてもとPC役の仮想環境・・・ここではMacBookにVirtualBoxをインストールし、そこに64ビット版Ubuntuをインストールし、それをtarで固めます。これを「新OS」と呼ぶことにします。tarファイルを作成・アップロードするためにもう一つのUbuntuをインストールします。これを「補助OS」と呼ぶことにします。専用サーバー(役のPC)への旧OSのインストールまず、専用サーバー役のPCに32ビット版Ubuntuをインストールします。Heron)サーバー版の32ビット(i386)のCDインストーラーを用いました。専用サーバーは固定IPアドレスである必要がありますので、ここでは、ネットワーク設定を自動設定(DHCP)ではなくマニュアルを選びましょう。ここでは、ご家庭やオフィス等のLAN上でよく用いられるプライベートアドレス空間を用い、IPアドレス10.0.1.100、サブネットマスク255.255.255.0、デフォルトゲートウェイ10.0.1.1、ネームサーバー8.8.8.8で設定しました。パーティション構成は、/dev/sda1に100MB・ext2で/boot、/dev/sda2に62GB・ext3で/(ルート)、/dev/sda3に2GBでswapとします。インストーラーの終盤でのソフトウェアパッケージの選択では、openssh-serverを選択します。専用サーバーにssh等でログインします。専用サーバーに共通の初期設定これは必須な作業ではありませんが、専用サーバーのログイン直後に最低限しておくべき設定・作業をしてしまいましょう。次に、apparmor関連パッケージを削除してしまいましょう。▼次のコマンドでapparmorという文字列を含むパッケージを検索します。removeで削除します。--purgeで完全に削除します。Koala(あるいはそれ移行のバージョン)にアップグレードします。▼念のため、現状のsources.listのバックアップコピーをとっておきましょう。/etc/apt/sources.list.0▼/etc/apt/sources.listを編集します。/etc/apt/sources.list▼編集完了後、/etc/apt/sources.listをcat確認します。/etc/apt/sources.list▼次のように表示されるように編集して下さい。multiverse▼アップグレードします。dist-upgrade必要なパッケージのインストール▼別途必要なパッケージをインストールします。ここではgrub2(パッケージ名grub-pc)と、lvm2をインストールします。次にパーティション構成を変更していきます。ここでは、現swap領域を、新Ubuntuの/(ルート)パーティションにします。▼まずfreeコマンドでswapを確認します。-aでスワップを停止します。-a▼freeコマンドでswapが停止したことを確認します。free次回起動時にswapが動作しないように/etc/fstabを編集しておきましょう。▼まずは、現在の/etc/fstabのバックアップコピーをとっておきましょう。/etc/fstab.0▼/etc/fstabを編集します。/etc/fstabswapの行の先頭に#を入力します。▼編集が完了したら、念のため、cat確認します。次にfdiskでパーティション構成を編集します。▼現状をdf確認します。df▼fdiskコマンドでHDD(/dev/sda)を編集します。8e)変更を保存(w)▼現在の状況は次の通りとなります。LVM▼パーティション構成を変更しましたので、念のため、ここでいったん再起動しておきましょう。起動後、再度ログインし、LVMを設定していきます。▼まず、LVM物理ボリュームを作成します。/dev/sda3▼LVM物理ボリュームを確認します。pvdisplay▼次に、LVMボリュームグループを作成します。ここでは「lvm」という名前のボリュームグループとします。下記のコマンドで「lvm」という名前のボリュームグループを、/dev/sda3というLVM物理ボリューム上に作成します。/dev/sda3▼LVMボリュームグループを確認します。vgdisplay▼次に、LVM論理グループを作成します。ここでは「root」という名前のLVM論理ボリュームを作成します。「-L」オプションで容量を指定し、「-n」オプションで論理ボリュームの名前を指定して、LVMボリュームグループ名「lvm」上に作成します。lvm▼LVM論理ボリュームを確認します。lvdisplay▼LVMの編集が完了したら、念のため、システムをリブートしておきましょう。新OS用のパーティションのext4フォーマット再起動後、ログインしたら、作成したLVM論理ボリュームをフォーマットします。LVM論理ボリューム「root」は/dev/lvm/rootまたは/dev/mapper/lvm-rootという名前になります。▼ext4でフォーマットします。/dev/lvm/root▼フォーマットが完了したら、そのマウントポイントを作成します。ここでは/mnt以下にamd64rootというディレクトリを作成します。/mnt/amd64root▼LVM領域をフォーマットしたので、念のため再起動しておきますが、その前にきちんとフォーマットされマウントされるかどうかを確認することを兼ねて、/etc/fstabを編集して、次回起動時に/dev/lvm/rootが/mnt/amd64rootにマウントされるようにしましょう。/etc/fstab▼システムを再起動します。reboot▼再起動後、ログインしたら、dfコマンドで、LVM領域(/dev/lvm/rootまたは/dev/mapper/lvm-root)が/mnt/amd64rootにきちんとマウントされていることを確認しましょう。/mnt/amd64マウントができたら専用サーバー側の準備はできましたので、おてもとPC上での作業を行っていきます。新OSの準備おてもとPCには、64ビット版Ubuntu(amd64)をインストールします。ネットワーク設定・・・なんでもかまいませんので、自動設定(DHCP)でOkです。ホスト名やドメイン名も何でもOkです。パーティション設定・・こちらもどのような設定でもかまいません。補助OSをインストールする領域を残しておく必要があります。ユーザー設定・・・・・ユーザー名も何でもOkです。ここでは「ubuntu」にしました。ソフトウェア・・・・・openssh-serverは必ずインストールしましょう。ブートローダー・・・・HDDの先頭=MBR(/dev/sda)にインストールします。これがそのまま専用サーバー上で動作することになりますので、インストール完了後にシステムが再起動したら、ログインして、次の操作をしましょう。必須パッケージ(openssh-server)・・・必須です。(絶対にインストールし忘れることのないよう、別PC上のターミナルからsshでログインして作業するようにしましょう。)次は必須ではありませんが、是非やっておいた方が良い操作です。apparmor関連パッケージの削除(万が一の失敗を防ぐためにも念のため前述の手順を参考に削除してしまいましょう。移行完了後にいつでもまたインストールすることができますので。)ufwの設定(新環境が起動した時点からファイアウォールが動作しているように。upgrade)新環境が起動した時点からセキュリティアップデートが完了しているように。apt-getのautoremove、clean、autoclean、等(不要なパッケージや、ダウンロードしたパッケージのキャッシュを、削除しておきましょう。新OSのインストールが完了したら、同じおてもとPC上にもう一つUbuntu(補助OS)をインストールしていきます。Koala)の64ビット版(amd64)をそのまま用いました。ポイントは、次の通り。パーティション設定で、前のUbuntu(新OS)の領域をフォーマットしない。ブートローダー(grub2またはgrub-pc)のインストール先は、HDDの先頭(MBR:マスターブートレコード)にする。インストールが完成したら、システムを再起動します。ブートローダーをHDDの先頭(MBR)にインストールしましたので、新しいUbuntu(補助OS)が起動されます。新しいUbuntu(補助OS)が起動したらログインして、前のUbuntu(新OS)をtarで固めましょう。▽前のUbuntu(新OS)の領域のためのマウントポイントを作成します。/mnt/amd64root▽作成したマウントポイントに前のUbuntu(新OS)のパーティションをマウントします。/mnt/amd64root▽念のためdfとlsで確認します。/mnt/amd64root▽マウントポイントに移動します。/mnt/amd64root▽tarでかためます。ここでは、amd64root.tarというファイル名でホームディレクトリ(ここでは/home/ubuntu)以下に作成します。.▽ホームディレクトリに戻ります。cd▽pwdで現在のディレクトリを確認します。ubuntuというユーザー名ですのでホームディレクトリは/home/ubuntuとなるはずです。pwd/home/ubuntu▽作成されたtarファイルを確認します。-al▽scpコマンドでtarファイルを専用サーバーにアップロードします。ubuntu@10.0.1.100:scpコマンドのすぐ後に「アップロードしたいファイル名」、次に「アップロード先のホストのユーザー名@IPアドレス」を指定します。▽アップロードにはしばらく時間がかかります。▼tarファイルのアップロードが完了したら、専用サーバー側でアップロードされたtarファイルを確認します。-al▼tarファイルを、新OS用のマウントポイント/mnt/amd64rootにコピーします。/mnt/amd64root▼/mnt/amd64rootに移動します。/mnt/amd64root▼tarを解凍(展開)します。amd64root.tar▼必要なファイルをコピーします。etc/udev/rules.d/▼blkidコマンドでUUIDを調べておきます。blkid▼編集が必要なファイルを編集します。etc/fstab編集のポイントは次の通りです。▼次に、/mnt/amd64root/boot以下のカーネル関連のファイルを/bootにコピーします。/boot▼/mnt/amd64root/boot以下のファイルを、念のためtarでバックアップコピーを作成しておきます。.▼/mnt/amd64root/boot以下のファイルは削除してしまいます。/mnt/amd64root/boot/*▼update-grubでブートローダーに先程コピーした64ビットなカーネルを認識させます。update-grub▼/boot/grub/grub.cfgのmenuentryの行を検索します。menuentry▼/boot/grub/grub.cfgのバックアップコピーをとっておきます。/boot/grub/grub.cfg.0▼/boot/grub/grub.cfgを編集します。/boot/grub/grub.cfg変更するポイントは次の通りです。default="2"」に変更します。5番目に表示されていたら4に。表示された行数マイナス1の数字に変更するということです。splash」のような行のUUID以下を、blkidで表示されたLVMなルートのUUIDに変更します。viを保存して終了する際には強制の!を使用する必要があります。▼念のためcat確認し、変更をdiff比較します。/boot/grub/grub.cfg.0きちんと変更されていることを確認します。▼以上で、変更は完了です。rebootで再起動をかけます。再起動したら64ビット版Ubuntuで起動されるはずです。reboot▼sshで新OSにユーザーubuntuでアクセスします。10.0.1.100▼/(ルート)をls確認して、lib64ディレクトリが存在すれば64ビット環境となっていることを確認できます。anonymous)。