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)
わっしょい。