このようなアプローチは非常に複雑であり、すべてのパッケージがamd64
バージョンではなくバージョンになることはほとんどありませんi386
。実際にアップグレードを受けるパッケージのみがアーキテクチャで変更される可能性が高く、おそらく、アップグレードされていない他のパッケージがi386
アーキテクチャの存在に依存していない場合のみです。一部のパッケージは、Ubuntuリリースのサポートサイクル全体を通じて更新を受け取らないため、amd64
このような手法を使用した完全なシステムはおそらくないでしょう。さらに、そのようなアプローチに対する公式のサポートは確かにありません。
代わりに、既存のUbuntuシステムを新しい64ビットインストールに置き換えることをお勧めします。
ただし、この手法を試してみたい場合は、とのファイルを手動でダウンロードする必要.deb
がdpkg
ありapt
ます。それらはdpkg
、UbuntuおよびLaunchpadのapt
Ubuntuページで見つけることができます。リリース、セキュリティ、および/または更新としてマークされている「The Oneiric Ocelot」の下の最新バージョンを展開します(ただし、おそらくバージョンのみをマークしたくない提案および/またはバックポート(ある場合)。次に、と.deb
マークされたファイルをダウンロードしますamd64
。具体的には、必要なファイルは次のとおりですdpkg
(これらのパッケージがインストールされている場合は、これもリストされます)、これとこれとこれとこれそしてこれはapt
。
これらのファイルを使用する前に、インストールされているUbuntuシステム内のすべての重要なドキュメントとその他の重要なファイル(音楽、電子書籍、ビデオなど)を必ずバックアップする必要があります。 Ubuntuシステムを完全に使用不能のままにします。
これらすべてのパッケージをインストールするには、他に何も含まれていないフォルダーにフォルダーを配置し(フォルダーが呼び出さdebs
れ、Downloads
ディレクトリ内にある場合)、次のコマンドを実行します。
sudo dpkg -Ri ~/Downloads/debs
もちろん、一度インストールすると、実行可能ファイルは64ビットで、32ビットUbuntuシステムは32ビットカーネル(32ビット実行可能ファイルのみを実行します)を実行するため、実際には実行されません。実際、実行不能な64ビットの実行可能ファイルを呼び出すインストール後スクリプトが存在する可能性があるため、インストールを完了することさえできません。
64ビットカーネルを32ビットシステムにインストールするさまざまな方法がありますが、それらはすべて非常に複雑なので、代わりに64ビットのOneiricライブCD(それ自体が64ビットを実行するカーネル)、インストールされたUbuntuシステムにchrootし、最近インストールされた64ビットapt
を使用してdpkg
、64ビットカーネルをインストールします。
これを行うための具体的な手順を以下に示します...しかし、これがうまくいくと言っているという意味ではありません。私はこれを試みていません。(私はライブCDからインストールされたUbuntuシステムにchrootし、パッケージ管理と他の操作を実行しましたが、ここで提案されているクロスアーキテクチャ操作は試していません。)
インストールしたUbuntuシステムで、ターミナルウィンドウ(Ctrl+ Alt+ T)を開いて実行しますmount | grep ' on / '
(ターミナルに貼り付けてEnterキーを押します)。のようなものが表示されるはず/dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
です。興味のある部分は以前のデバイス名ですon
(この例では/dev/sda2
)。それを覚えておくか、書き留めてください。
手順1で、/
パーティションのデバイス名がわかりました。別の/boot
パーティションがある場合は、そのためのデバイス名も知っている必要があります。その場合、実行しmount | grep ' on /boot '
ます。次のようなものが表示されます/dev/sda1 on /boot type ext2 (rw)
。これも覚えておくか書き留めてください。
Oneiric amd64(つまり64ビット)ライブCDから起動し、「Ubuntuのインストール」ではなく「Ubuntuを試す」を選択します。
Webブラウザーに移動して、インターネット接続が完全に機能していることを確認します。そうでない場合は、セットアップします。
ターミナルウィンドウを開いて実行しますsudo mount /dev/sda2 /mnt
(/dev/sda2
異なる場合は、手順1で取得したデバイス名に置き換えます)。
インストールしたシステムに個別の/boot
パーティションがある場合は、実行しますsudo mount /dev/sda1 /mnt/boot
(/dev/sda1
異なる場合は、手順2で取得したデバイス名に置き換えます)。
次に、これらのコマンドを実行して、インストールされたシステムにchrootします。
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
実行しping -c 4 launchpad.net
、インターネット接続がchroot環境内から完全に動作するかどうかを確認します。次のようなものを期待しています:
PING launchpad.net (91.189.89.223) 56(84) bytes of data.
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=1 ttl=41 time=141 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=2 ttl=41 time=143 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=3 ttl=41 time=142 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=4 ttl=41 time=140 ms
--- launchpad.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
代わりに、パケットを送信または受信できなかった場合は、chrootでインターネット接続を設定する必要があります。そのためには、次のコマンドを実行します(chrootを終了し、関連する構成ファイルをライブCDシステムからchrootにコピーし、chrootを再入力します)。
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
sudo cp /etc/hosts /mnt/etc/hosts
通常、エラーが発生した場合はこのプロセスを停止する必要がありますが、失敗する特定の方法が/mnt/etc/resolv.conf
(または/mnt/etc/hosts
)が存在しないことを伝えることである場合、これらの4つのコマンドの最初または2つが失敗しても心配しないでください。
chrootに戻って再試行します。
sudo chroot /mnt
ping -c 4 launchpad.net
これらのコマンドを実行して、chrooted環境を完全に使用できる状態にします。
export HOME=/root
export LC_ALL=C
およびの.deb
64ビットバージョンのファイルをインストールしていない場合は、今すぐインストールします。それらをインストールしたが、構成エラーがあった場合は、実行して修正します。(うまくいけば...インストールされたシステムで起動した状態で64ビットをインストールすると使用できない状態のままになるので、ライブCD環境になるまでインストールを試みるのを待つ方が良いかもしれません。)dpkg
apt
dpkg --configure -a
dpkg
dpkg
64ビットのバージョンでdpkg
とapt
インストールされ、彼らは自動的に64ビットパッケージをインストールすることを想定して、あなたは今、すべての32ビットのカーネルを削除して、64ビットのカーネルをインストールすることができます。32ビットカーネルを削除するには、を実行しdpkg -l | grep linux-
ます。これは、で始まるインストール済みパッケージをリストしますlinux-
。あなたは次のように起動したパッケージで、より具体的に興味を持っているlinux-generic
、linux-image
、linux-server
、および/またはlinux-headers
。apt-get purge ...
where ...
が削除するパッケージのスペース区切りリストで置き換えられたこれらのファイルを削除します。
次に、削除したパッケージを再インストールします。(実際には、たとえばlinux-image-3.0.0-13-generic
、パッケージ名にバージョン番号が含まれるパッケージの場合、最新バージョンのパッケージ名のみをインストールする必要があります。)インストールするパッケージのスペース区切りリストで置き換えられるapt-get install ...
where を実行することでこれ...
を行います。 。
ブートローダーの構成を更新し、いくつかのデバイスをアンマウントし、chrootのままにします。
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
実行sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
しても失敗しなかった場合は、実行しsudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
ます。
実行sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
しても失敗しなかった場合は、実行しsudo cp /mnt/etc/hosts.old /mnt/etc/hosts
ます。
インストールされているシステムに個別の/boot
パーティションがある場合は、次をアンマウントします。sudo umount /mnt/boot
インストールしたシステムの/
パーティションをアンマウントします。sudo umount /mnt
ターミナルウィンドウを離れて(実行exit
)、ライブCDシステムを再起動(またはシャットダウン)し、インストールされたシステムを起動します。
システムが使用可能で、64ビットカーネルを実行しているかどうかを確認します(uname -m
アーキテクチャがそうであると言うべきですx86_64
)。
ia32_libs
および/または64ビットバージョンのlibc6
など、これが機能するためにインストールする必要がある追加のパッケージが存在する可能性があります。それらの一部については、64ビットバージョンのdpkg
and / or をインストールしようとするときにそれらが必要であると通知される場合がありますapt
。他の人のために、あなたは知らされないかもしれません。
(chrootするとchrootされた環境で動作するための上記の手順は、上の重要な部分に基づいています。この関連するが、別の手順と、いくつかの上のLaunchpad回答特に、#6私の記事をここに#6 ここに。そして、特別な感謝をセシウム指摘し64ビットdpkg
とapt
実行可能ファイルは、32ビットカーネルを実行しているシステムでは実行されません。