私が使ってきたのはFedoraで、すでに64ビット版への移行を決心していた。もう何年もLinuxのカンファレンスでFedora愛好家やRed Hatの社員に64ビット版へのクロスグレードについて話を聞いてきたが、その方法として返ってくる答えは決まって再インストールだった。しかし、再インストールはシステムのハードディスク・エラーが頻発して手の施しようがなくなったときの最後の手段にしておきたい、というのが私の考えだ。そこで、ディストリビューション全体のレベルでのクロスグレードが実行可能かどうかを確かめることにした。
警告: Fedora環境のアーキテクチャの32ビット版から64ビット版への変更は推奨されるものではなく、またいかなる形でもサポートされていないため、適切なバックアップを取ってから自己責任で行うこと。
試しに、VMwareのサーバインスタンスにFedora 7のi386版をインストールして、ホスト側仮想マシンのCPUアーキテクチャを64ビット版に変更した。続いて、この仮想マシンをFedora 8のx86_64版DVDイメージからブートする。既存のLinux環境をアップグレードするオプションを選択すると、インストーラから既存の環境とDVDイメージとでアーキテクチャが異なる、との警告が出た。不吉なことに、“この操作は続行するな”とのメッセージも添えられている。だが、私はこの警告を無視した。すると、アップグレード作業は何事もなく進み、普通に仮想マシンをリブートすることができた。また、クロスグレード完了後も仮想マシンは万事問題なく動作しているように見えた。こうして仮想環境での成功を得た私は、いよいよ実環境でのライブシステムのクロスグレードに取りかかることにした。
この作業に取り組む場合は、Clonezillaのようなツールを使ってシステムの完全バックアップを行うことをお勧めする。そうしておけば、システムのクロスグレードに失敗しても、移行を試みる前の状態にすぐに戻すことができる。
また、必要になりそうなRPMファイルはすべて作業開始前にダウンロードしておきたい。Fedora 8のEverythingディレクトリとupdatesディレクトリをミラーリングしている場合は、厳密には必要のないファイルまでダウンロードすることになるが、厄介なアップグレード作業の途中で600MBものデータのダウンロード待ち状態に陥るよりはずっとマシだ。2007年12月時点で、DVDイメージ「Fedora-8-x86_64-DVD.iso」のサイズは3.7GB、Fedora 8 のx86_64用Everythingディレクトリは12GB、同じくx86_64用updatesディレクトリは3.2GBとなっている。Everythingディレクトリの取得と、そのためのyumのローカルリポジトリ設定には、以下に示すスクリプトを使用する。ただし、wgetに与えるURLは利用できる最も高速なFedoraミラーに変更すること。新しいローカルリポジトリ用にyum.repoファイルを作成することで、それらをデフォルトの「fedora.repo」および「fedora-updates.repo」ファイルよりも優先して使うことができる。なお、「/yum-repo-mirrors」は次のすべてのデータが入るほど大きなパーティションでなければならない。
# cat f8everything.sh #!/bin/bash mkdir -p /yum-repo-mirrors/f8everything cd /yum-repo-mirrors/f8everything wget -Y off -m "ftp://mirror.../pub/fedora/linux/releases/8/Everything/x86_64/os/Packages/" cd /yum-repo-mirrors/f8everything nice createrepo `pwd` /etc/yum.repos.d]# cat f8everything.repo [f8everything] name=Fedora $releasever - $basearch baseurl=file:///yum-repo-mirrors/f8everything/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
