Ubuntuを32ビット版から64ビット版にアップグレードする


14

Ubuntuの32ビットバージョンを64ビットバージョンにアップグレードする方法はありますか?Ubuntu 9.10を使用しています。

簡単な方法がない場合、ホームと/etcディレクトリを新しいインストールに単純にコピーするとどうなりますか?


2
ヒント:etckeeper古いシステムと新しいシステムで使用し、古いシステムにインストールされたすべての追加パッケージ(dselectおよびdpkg -l)をインストールした後、dist構成ファイルと比較した変更を新しいシステムにマージします;)...
0xC0000022L

回答:


4

残念ながら、他のOSのように、これを行うための「アップグレードパス」はありません。ほとんど確実に再インストールが必要になります。

データの保存に関しては、他のデータと一緒にホームディレクトリをバックアップすることをお勧めします。新しいインストールに簡単にインポートする必要があります。

何かを試みる前に、常にデータをバックアップしてください!


6

/etcパッケージの64ビットコンパイルの構成要件にわずかな違いがある場合にコピーオーバーするのではなく、コピーを取得diffして、新しくインストールされた64に対してコピーを実行しますが、システムは動作します。多くの場合、変更の数はそれほど多くないため、これを実行し、必要な変更を手動で行うことは大きな困難ではありません。

/etcあなたが提案するようにコピーすることはうまくいくはずですが、私は妄想のためにもっと長い時間それをやります。/homeあるインストールから別のインストールに移行する際の主な関心領域であるコピーは、完全に安全である可能性が高くなります。

特に64ビットアプリケーションを使用する必要があるためではなく、64ビットに移行してより多くのRAMを使用する場合は、64ビットカーネルと32ビットユーザースペースを使用できます。Debianは実際にi386リポジトリでa64カーネルパッケージを提供するため、のように簡単に実行できますaptitude install linux-image-2.6-amd64が、Ubuntuは残念ながらそうしないので、時間がない場合は時間と手間をかける価値がないかもしれない独自のカーネルをコンパイルする必要があります技術的に経験したこと(つまり、これ単純ですが以前に独自のカーネルをコンパイルしたことがある場合は、プロセスに慣れている必要があります)。32ビットのユーザーランドで64ビットカーネルを実行する場合、個々のアプリは最大で〜3Gb(場合によっては〜2Gb)しかアクセスできませんが、システム全体(すべてのプロセスとカーネルのようなもの) IOキャッシュとバッファ)は、できるだけ多く使用できます。これらの目的では、各VMWare VMは単一のアプリとしてカウントされます-古いVMホストの1つをこの方法で実行します(VMは、64ビットカーネル、32ビットユーザーランド、および32ビットVMWareで合計で〜7Gbを使用します)マシンのCPUを64ビット対応のものにアップグレードし、追加のRAMを追加したときの完全な64ビットホストOSのアップグレードよりも-同様のVMソリューションも同じように動作すると思います。


PAEを有効にして「linux-image-server」カーネルを使用するのと同じではありませんか?
キリルV.リャドビンスキー

AMD64ベース/互換プロセッサは、32ビットと64ビットのコードを一緒に実行するためにモードを切り替える必要がないため、そこに余分な非効率性はなく、PAEが使用するメモリマッピングジガリー-ポケリーがないことは私の理解ですどちらか(32ビットアプリは、仮想アドレス空間の下位4Gb以下を使用するように見えるだけです)。私は間違っている可能性がありますが、追加のアドレス指定可能なRAMを取得するためにこの方法で32ビットと64ビットのコードを混在させることは、PAEよりも効率が悪いと考えています。
デビッドスピレット

6

先月、32ビット10.10から64ビット10.10にデータを失わずにマシンを再インストールしました。唯一のコツは、64ビットubuntu 10.10を再インストールするときに、ディスク全体をフォーマットするのではなく、ディスクのサイズ変更ツールを選択することです。


+1。実際、私はこれが行われたのを見ました(DebianとUbuntu)、それは完璧に動作するように見えました。
0xC0000022L

0

64ビットカーネルで32ビットユーザーランドを実行すると、システム機能が関与するとすぐに問題が発生する可能性があります。たとえば、64ビットカーネルで32ビットlibalsaを使用してもほとんど機能しますが、asound.hで定義されたioctlデータ構造は64ビットと32ビットアーキテクチャでコンパイルされた場合、サイズと配置が異なるため、非常に信頼できず不安定です。

そのため、jackd -d alsa -X alsaraw(またはjackd2に相当するもの)を使用すると、64ビットカーネルで32ビットユーティリティを呼び出したときにアサーションが失敗し、中止されます。バッファカウントが誤って解釈されるため、標準のオーディオ操作の信頼性ははるかに低くなります。

一般に、カーネルデータ構造は、32ビットカーネルと64ビットカーネル間でサイズが変わらないように宣言する必要があります。または、32ビットコードは、カーネルアーキテクチャに応じて異なる構造定義を使用する必要があります。

全体として、最初から再インストールし、ホームパーティション/ディレクトリを転送する方が良いでしょう。


これは7年以上前に質問(および回答)されました。あなたがどのような新しい情報を持ち込んでいるのか、もう少し明確になりますか?回答方法を参照して、ツアーに参加してください
ブルギ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.