/homeを残して、Ubuntu 16.04LTS をクリーンインストールする


クリーンインストールする理由と目論見

手元のサブノートPCに Ubuntu 32bit版を入れて、10.04LTS から 16.04LTS までアップグレードを重ねて使ってきたが、32bit版サポートをやめるパッケージが増えてきた。
64bit版にアップグレードする方法はないので、クリーンインストールすることにした。この機会にディスクに溜まった不要物を一掃するが、別パーティション /home の下の現ユーザホームフォルダは残しておき、引き継ぎたいgitリポジトリや個人文書などのファイルを新ユーザホームフォルダへ移した後に削除する。

対象マシンのスペックとパーティション構成

ThinkPad X61

  • CPU: Core2 Duo T7500 @ 2.2GHz
  • RAM: DDR2-800 2GB x 2
  • HDD: Intel SSD 80GB
    • /dev/sda1 ext4 25GB /
    • /dev/sda5 ext4 51GB /home
    • /dev/sda6 swap 4GB

インストール手順

  1. 事故に備えて、失いたくないファイルをバックアップする。backupソフトを使っても良いのだが、今回は7zで固めてNASへ手動コピーした。/etcの設定ファイル類も忘れずにバックアップしておく。サーバーを建てていれば /varの下もバックアップしておいたほうが良いだろう。
  2. 最新のUbuntuインストールISOイメージをダウンロードし、「ブータブルUSBの作成」アプリケーションを使ってUSBメモリに書き込む。
  3. マシンを再起動し、(BIOSメーカによって異なるが、ThinkPadの場合は)F12キーを押してBIOSのブート選択メニューを呼び出す。USBメモリを選び起動する。
  4. Ubuntuが起動したら「Ubuntuを試す」を選択し、左端のランチャーからファイルを起動し、左サイドバーに現れた home用のパーティションディスクを開く。
  5. 開いたディスクのユーザホームフォルダ(私の場合は hkuno)を右クリックしてメニュー「端末を開く」にて端末で開き
    cd .. ; sudo mv hkuno hkuno.old
    としてリネームする。
    • ここでリネームしなければ、元のユーザホームフォルダを丸ごと引き継ぐことができるようだが、それでは不要なアプリの設定やキャッシュなど長年溜まったゴミも引き継いでしまい、今回の目的に合わない。
  6. デスクトップ上の「Ubuntu 16.04LTS インストール」をクリックしてインストーラを起動する。
  7. インストール先の選択には、「上書き」、「共存」などがあるが「それ以外」を選択する。
    • システムが入っている sda1 を選び、[変更]ボタンを押し、ext4、初期化チェックオン、マウントポイント / を設定する。そしてブートパーティションに指定する。
    • ユーザホームフォルダが入っている sda5 を選び、[変更]ボタンを押し、マウントポイント/homeを設定する。初期化チェックオンしてはいけない。
    • swapの sda6 はそのままで良い。
  8. インストール実行。もう後戻りはできません。
  9. タイムゾーンはTokyo、キーボードレイアウトは日本語・日本語を選ぶ。
  10. 名前とコンピュータ名はお好みで、ユーザ名は今までと同じhkuno、パスワードも今までと同じに設定する。
  11. インストール続行、5分ほどで「インストールが完了しました」となる。さすがSSDは速い!
  12. 今すぐ再起動するを選び、「USBメモリを抜いてEnter」との指示に従うと、新OSが起動する。
  13. デフォルトではホームに「デスクトップ、ダウンロード、ドキュメント」などの日本語名フォルダが作成されている。マウスのみで使うならこのままで良いが、端末で使う場合には厄介なので英語名に変える。Ctrl+Alt+T にて端末を開く。
    LANG=C xdg-user-dirs-gtk-update
    と打ち込むと、ダイアログが開くので、Don't ask me をチェックして、[Update Names] ボタンをクリックする。
  14. 続いて、初期ファイル保存フォルダを作成し、ホーム直下とetcの設定ファイルの初期状態を保存しておくとよい。
    mkdir orig ; sudo cp -p .* /etc/* orig/
  15. Ubuntu 16.04 LTS 標準パッケージのgitはバージョンが 2.7.4 とやや古いので、
    sudo add-apt-repository ppa:git-core/ppa
    にて最新版を取れるようにする。
  16. パッケージを更新&アップグレードする。
    sudo apt update ; sudo apt upgrade
  17. アップグレード後のディストリビューションのバージョンを確認する。2016-11-12時点では 16.04.01 LTS である。
    lsb_release -d
  18. ランチャーからファイルを起動し、最初にリネームして残しておいた元のユーザホームフォルダ /home/hkuno.old を開き、引き継ぎたいファイルやフォルダを、新ホームへドラッグドロップして移動する。同名フォルダがあって衝突する場合は[マージ]を選ぶと、良い具合に処理してくれる。
  19. 端末用のパッケージを順次インストールする。定番 vim nkf jless git tig の他にビルドツールを一式入れてみた。
  20. ランチャーからUbuntuSoftwareを起動し、欲しいGUIツールを順次インストールする。端末から sudo apt で入れることもできるが、こちらはランチャー登録もやってくれるので便利である。
  21. この時点で初期選択済みパッケージの一覧を保存しておくとよい。
    dpkg --get-selections > orig/pkg-selections
  22. 標準パッケージに載っていないものは、それぞれのサイトからダウンロードしてインストールする
  23. bash設定を調整する。Ubuntuのデフォルト設定は充実しているので、.profile と .bash_logout は手を加えなくても良い感じ。.bashrc にヒストリ無視パターンを追加し、.bash_aliases に個人的なエイリアスを記入した。
  24. 以上
## rename folder
LANG=C xdg-user-dirs-gtk-update

## upate package
sudo add-apt-repository ppa:git-core/ppa
sudo apt update ; sudo apt -y upgrade
lsb_release -d
uname -a

# install package
sudo apt -y install vim git tig jless nkf zip p7zip-full
sudo apt -y install build-essential libtool automake autoconf pkg-config
sudo apt-get autoremove

# backup initial settings
mkdir orig save backup install
sudo cp -p .* /etc/* orig/
dpkg --get-selections > save/pkg-selections

# config bash
echo "HISTTIMEFORMAT='%F %T '"    >> .bashrc
echo "HISTCONTROL=ignoreboth"     >> .bashrc 
echo "HISTIGNORE='?:??:???:exit'" >> .bashrc 
vim .bash_aliases

参考記事