Fedora 10 から Fedora 12 へのアップグレード (preupgradeで)

会社の作業用VMはRH互換で、且つパッケージも色々と新しめがいいのでFedoraを使ってるんですが、気づいたらFedora が 12 まで出てるということで、現在のFedora 10からアップグレードすることにしました。

昔だと、ISOイメージから起動して、インストールのオプションでUpgradeとかしてましたけど、最近はもう少しいいやり方があるぽいですね。preupgrade を使ってアップグレードしてみます。

preupgradeパッケージをインストールする

preupgradeっていうパッケージがあるそうなので、インストール。

sudo yum install preupgrade

preupgradeを実行する

preupgrade-cli という CLI 版のコマンドを実行。 -cli 無しの preupgrade は GUI 版なので注意。あと、LANGの環境変数周りかで、自分のアカウントからsudo経由で試したときは、何かそれっぽいエラーが出たので、LANGがCなrootで試すといいと思います。

sudo preupgrade-cli "Fedora 12 (Constantine)"

最後にこんなメッセージが出ればOK。

DEBUG /sbin/grubby --title="Upgrade to Fedora 12 (Constantine)" --remove-kernel="/boot/upgrade/vmlinuz" --add-kernel="/boot/upgrade/vmlinuz" --initrd="/boot/upgrade/initrd.img" --args="preupgrade repo=hd::/var/cache/yum/preupgrade stage2=hd:UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:/upgrade/install.img ks=hd:UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx:/upgrade/ks.cfg"
    Probing devices to guess BIOS drives. This may take a long time.
    All finished. The upgrade will begin when you reboot.

再起動、完了と思いきやしかし

再起動しろと言われたからしてみます。
途中から自動でGUIのインストーラがアップグレードを始めてくれます。おー、すごい、超楽チン何これ。

…と思いきや、アップグレード途中で/bootの容量が足らないとかで怒られて失敗してしまいました。

Fedora 10をインストールするときに、anacondaがパーティション切ってくれた /boot 領域が200MBぐらいなんですが、preupgrade-cli実行した後やたら容量が増えてて、アップグレード時にインストール先としての容量足らなくなるという、なんとも微妙な感じの挙動の様子です。
色々調べてたら、preupgrade-cli を実行する時点で容量不足だった場合は、preupgrade-cli実行時ではなく、再起動でアップグレード開始時にダウンロードするというtrickがあるようなので、そちらを参考にもう一度 preupgrade-cli を実行してみることにしました。ただし、アップグレード時にネットにつながってるという条件が必要なので、それ以外のときはCDからやるしかないかもしれません。

参考: How to use PreUpgrade: # 4.1.2 Method 2: Trick preupgrade into downloading the installer

というわけで仕切りなおし

最初にpreupgrade-cliしたときのダウンロード済みファイルを削除します。

sudo rm -rf /boot/upgrade

アップグレード用のイメージの容量が120MBくらいだったので、/boot 以下の容量が100MB切るくらいに調整するといいです。

sudo dd if=/dev/zero of=/boot/preupgrade_filter bs=1024 count=XXXXX

もう一回、preupgrade-cliしてみます。

sudo preupgrade-cli “Fedora 12 (Constantine)”

容量が足らないうんたらかんたら言われますが、承知の上なのでスルーします。upgrade-cli完了時のメッセージは先ほどと同様です。

わざと容量をとっていた部分を削除します。

sudo rm /boot/preupgrade_filter

あとはリブート。

sudo reboot

これでさっき失敗したところもうまくスルーしてアップグレードが完了するようになりました。

アップグレードの結果を確認、OKそうです。

cat /etc/redhat-release
Fedora release 12 (Constantine)

わっしょい。