Ubuntuの遠隔アップグレード
そのサーバのOSに入れてもらったのは Ubuntu Linux 10.04 で、2年近く古いバージョンだった。でも大丈夫、Debianやその派生のディストリビューションはパッケージシステムがしっかりしているので、遠隔操作でも比較的容易にアップグレードが可能だ… とはいえレンタルサーバのOSをsshで遠隔アップグレードという作業は失敗した時のリスクが大きいので、仕事ならやりたくない部類に入る。まあ今回は仕事ではないし、大事なデータは初期前に全てバックアップ済みだ。丁度いい機会なので試してみることにした。
DebianやUbuntuのメジャーアップグレードは、隣接する次のバージョンに対してのみ可能だ。途中を飛ばすことはできない。今回は最初の状態が Ubuntu 10.04 lucid で、その次が Ubuntu 10.10 maverick 、その次が Ubuntu 11.04 natty 、そして次の Ubuntu 11.10 oneiric が現在の安定版になる。
3回のメジャーアップグレードを遠隔操作で行って、失敗したら業者への再初期化依頼からやり直し。恐ろしい。
アップグレードガイドを見てみると、作業そのものは3回とも全く同じ手順が書かれている。
- https://wiki.ubuntulinux.jp/UbuntuTips/Install/UpgradeMaverick
- https://wiki.ubuntulinux.jp/UbuntuTips/Install/UpgradeNatty
- https://wiki.ubuntulinux.jp/UbuntuTips/Install/UpgradeOneiric
Ubuntuサーバーのネットワークアップグレード(推奨) まだインストールしていなければ、update-manager-coreをインストールします: sudo apt-get install update-manager-core /etc/update-manager/release-upgradesを編集し、Prompt=normalを設定します アップグレードツールを起動します: sudo do-release-upgrade 画面に表示される手順に従ってください。
なんともお手軽そうに見えるが、実際には各回のアップグレードの前に以下のような準備を行っている。
- apt-get update
- apt-get dist-upgrade
- deborphanを使った不要パッケージの除去
- apt-get clean
- HDD全体のファイルをバックアップ
- 空き容量の確認
maverick (10.10)
grubを入れるパーティションを選択するダイアログが表示される。ドライブ全体に相当するデバイス名を選択する。
以下のパッケージが自動的に削除される。
Remove: libdns64 libntfs-3g75 Remove (was auto installed) libdirectfb-1.2-0 libgsf-1-114 libgsf-1-common libibus1 libts-0.0-0 libxcb-render-util0 linux-headers-2.6.32-38 linux-headers-2.6.32-38-generic-pae tsconf
natty (11.04)
以下のパッケージが自動的に削除される。
Remove: libdrm-nouveau1 Remove (was auto installed) libgirepository1.0-1 gir1.0-glib-2.0
コンソールの言語を選ぶダイアログが表示されたが、遠隔操作なので実際のモニタにどのようなコンソールが表示されるのかさっぱり分からない。適当に選択したが、問題は特に出ていないようだ。
oneiric (11.10)
以下のパッケージが自動的に削除される。
Remove: console-terminus
キーボードのモデルを選ぶダイアログが表示されたが、遠隔操作なので実際のキーボードがどのようなモデルなのかさっぱり分からない。適当に選択したが、問題は特に出ていないようだ。
initramfs-tools が何かエラーを出していたのでパッケージを再設定してみたら
# dpkg-reconfigure initramfs-tools /usr/sbin/dpkg-reconfigure: initramfs-tools is broken or not fully installed
という表示だった。 /boot にある古いカーネルのファイルを削除してから再設定すると解決した。
# cd /boot # rm *2.6.32* # rm *2.6.35* # dpkg --configure -a
最後にremoveされたパッケージを全てpurgeする。
dpkg -l |awk '/^rc/ {print $2}' |xargs dpkg --purge
アップグレード結果
意外なほど問題がない。RAID管理に使う3dmdのWebUIにアクセスできなくなった。ただし状態の確認だけならtw_cliコマンドでも一応は可能だ。