にへるつおるぐ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 | | Login |
|
|
10年ぶりに部屋に入るとコウモリや猫の巣窟だった |
Debianシステムのアーキテクチャをi386からamd64に変更する
あけび猫は今まで、Debianのアーキテクチャがi386のものを使っていたのですが、しだいにamd64に対応したCPUが増えてきたので、Debianのアーキテクチャもamd64にしてみることにしました。その際、今までの設定をそのまま引き継ぎたいので、その方法を考えてみました。以下は、Debian「squeeze」で試したものです。 下記の手順を実行する前に、必ず既存のシステムのバックアップを取っておきましょう。また、別のマシンやVirtualBox等で事前に練習しておくのがおすすめです。
大まかな手順は以上のとおりですが、詳細は以下のとおりです。 アーキテクチャに依存している形式のファイルこれは、あけび猫が気がついたのはrrdファイルです。これは、取りあえず、/varディレクトリにて、「find -name *.rrd」とタイプしてみて下さい。あと、外に心当たりのあるディレクトリがある場合には、そこもチェックしてみて下さい。発見された場合には対処が必要で、下記のリンク先のページが参考になりました。 パッケージの一覧を作るこれは、「dpkg --get-selections」とタイプすれば出てきます。シンプルな一覧にするには、先ず「dpkg -l | grep ^[^i]」とタイプしてみて、状態が「ii」以外になっているパッケージを調べ、不要なパッケージであることが分かったら、それを「dpkg -P …」で全てパージしておくとよいです。「dpkg --get-selections」の各行末には、「install」という文字列が付いてきますが、これはテキストエディタの置換機能とかキーボードマクロで消せると思います。たとえば、perlを使った場合には、「dpkg --get-selections | perl -e "while(<>){s/\s+\S*//;print;}"」とするとよいです。 aptitudeを使っていて、その設定をなるべく反映させたい場合には、「aptitude search *」の出力結果をどうにか加工すればよいと思いますが、長年使っているシステムでは、恐らく、apt-getやらdpkgやらで入れたパッケージが混在していたりしてなんだかよく分からない状態になっていると思うので、少しやってみて面倒になってきたら、dpkgの結果で妥協するのがよいと思います。 一覧を比較するたとえば、一覧「a」と一覧「b」を比較するには「diff a b」とタイプするとよいです。aに有ってbに無いものを表示させたい場合には「diff a b | grep "^<"」とタイプします。bに有ってaに無いものの場合には、単にaとbを入替えてもよいですし、「diff a b | grep "^>"」としてもよいと思います。各行の頭に付いた記号はテキストエディタの置換機能とかキーボードマクロで消せると思います。たとえば、perlを使った場合には、「diff a b | grep "^<" | perl -e "while(<>){s/^..//;print;}"」とするとよいです。 ちなみに、最終的に出来た一覧をインストールやらパージのコマンドに与えるには、たとえば、一覧が「c」だとすると「aptitude install `cat c`」とするとか、テキストエディタの機能で、各行の後ろに「 \」を付けて、それをターミナルに打ち込んだ目的のコマンドの引数部分にコピペするという手があります。 i386のシステムとamd64のシステムでパッケージの一覧が同じにならない場合の対処方法
i386のシステムが入ったパーティションにamd64のシステムのファイルをコピーする先ず、amd64のシステム(i386のシステムにインストールしてある全てのパッケージと同じパッケージが全て(アーキテクチャ依存のものは除く)インストール済みのもの)が入ったパーティションを「/mnt/a」にマウントし、i386のシステムが入ったパーティションを「/mnt/b」にマウントします。そして、下記のシェルスクリプトを実行します。(実際に実行する前に、各自の環境に合わせてスクリプトを修正しておきます。) rsync -av --delete \ --exclude "/etc/"\ --exclude "/var/"\ --exclude "/home/"\ --exclude "/tmp/"\ --exclude "/root/"\ --exclude "/mnt/"\ --exclude "/swap"\ --exclude "/opt/"\ /mnt/a/ /mnt/b rsync -av --delete /mnt/a/var/cache/apt/ /mnt/b/var/cache/apt rsync -av --delete /mnt/a/var/lib/apt/ /mnt/b/var/lib/apt rsync -av --delete /mnt/a/var/lib/dpkg/ /mnt/b/var/lib/dpkg rsync -av --delete /mnt/a/var/lib/aptitude/ /mnt/b/var/lib/aptitude シェルスクリプトは、たとえば、「c」というファイルに保存したとしたら、「sh c」とタイプすれば実行されます。 シェルスクリプトの中のrsyncのオプション「--exclude」にてコピーしたくないファイルやディレクトリを指定できます。「/swap」というのは、あけび猫は、スワップパーティションは使わずにルートディレクトリにスワップファイルを置く癖があるので、そういう癖のない人の場合には、この行は要らないと思います。上に記述してあるものの外にアーキテクチャ変更後に残しておきたりファイルやディレクトリがある場合にはそれを書き足し、逆にamd64のシステムのものと置き換えたいファイルやディレクトリがある場合には、それに該当する行を削除して下さい。 シェルスクリプトの最後の4行はapt関係のデータをi386のものからamd64のものにするための記述です。あけび猫は、「apt-xapian-index」は使っていないので、もしもこれがインストールされていた場合の結果は謎です。もしかすると、これのデータをコピーするための記述を書き加えないといけないかもしれませんが、よくわからない場合には、このパッケージを削除してしまえばよいかもしれません。 i386からamd64に変更したシステムを起動して問題があった場合の対処方法
CommentsNo comments yet
Add CommentTrackbackこのトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。 |