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

fedora Dec 14, 2009

会社の作業用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)

わっしょい。

Shinya Tsunematsu

Software Engineer, love tech, curry, music, fitness.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.