私は64ビットのハードウェアで32ビットのUbuntuをインストールしています。multi-archが実装された]1ので、OSを再インストールすることなく64ビットに切り替えたいと思っています。
これは、仕様で扱われているユーザーストーリーの1つです:
Shawnは、32ビット版のUbuntuを使用してシステムをインストールしましたが、ハードウェアが64ビットであるため、切り替えたいと考えています。彼はdpkgとaptのamd64バージョンを手動でインストールし、i386バージョンを置き換えて、デフォルトとして使用されるアーキテクチャを変更します; それから彼はamd64のubuntu-minimalパッケージをインストールします; それから彼はamd64のubuntu-desktopパッケージをインストールします。時間の経過とともに、残りのi386パッケージはアップグレード時に自動的に置き換えられます。
しかし、その指示に従おうとしても、64ビット版のdpkgもaptも見つからない。
このユーザー・ストーリーは、最終的な仕様では別の方法で実装されたのでしょうか、それとも何か違うことをする必要があるのでしょうか?
要するに、32ビットのインストールを64ビットに切り替えるにはどうすればいいのでしょうか?
このようなアプローチは非常に複雑で、すべてのパッケージが i386
バージョンの代わりに amd64
バージョンになる可能性は低いでしょう。実際にアップグレードを受けるパッケージだけがアーキテ クチャを変更されるでしょうし、アップグレードされない他のパッケ ージが i386
アーキテクチャであることに依存していない場合 に限られるでしょう。Ubuntuリリースのサポートサイクル全体を通して、アップデートを 全く 受け取らないパッケージもあるので、このようなテクニックを使っても、完全に amd64
なシステムにはならないでしょう。さらに、このような手法には公式なサポートがありません。
代わりに、既存のUbuntuシステムを新しい64ビットインストールに置き換えることをお勧めします。
しかし、このテクニックを試したい場合は、dpkg
と apt
用の .deb
ファイルを 手動で ダウンロードする必要があります。Launchpad の Ubuntu の dpkg
と Ubuntu の apt
ページで見つけることができます。"The Oneiric Ocelot" の下にある、リリース、セキュリティ、および/またはアップデートとマークされた最新バージョンを展開してください (ただし、提案版および/またはバックポートとマークされたバージョンだけは、もしあったとしても、おそらく必要ありません)。次に、amd64
とマークされた .deb
ファイルをダウンロードする。具体的には、以下のファイルが必要になる:dpkg` 用のこのファイル (および、それらのパッケージがインストールされていれば、リストにある他のファイルも) と、apt
用の このファイル と このファイル と このファイル と このファイル と このファイル です。
これらのファイルで何かをする前に、インストールした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して、パッケージ管理やその他の操作を行ったことはありますが、ここで提案されているクロスアーキテクチャの操作は試していません)
1.インストールしたUbuntuシステムで、ターミナルウィンドウを開き(Ctrl+Alt+T)、mount | grep ' on / '
を実行します(ターミナルに貼り付けてエンターキーを押します)。すると、/dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
のように表示されるはずです。気になるのはon
の前のデバイス名(この例では/dev/sda2
)です。覚えておくか、メモしておくこと。
2.ステップ 1 で /
パーティションのデバイス名がわかりました。もし/boot
パーティションが別にあるなら、そのデバイス名も知っておく必要があります。その場合は、mount | grep ' on /boot '
を実行してください。すると「/dev/sda1 on /boot type ext2 (rw)」のように表示されます。これも覚えておくかメモしておく。 3.3.Oneiricのamd64(つまり64ビット)ライブCDからブートし、"Ubuntuをインストールする"ではなく"Ubuntuを試す"を選択します。 4.ウェブブラウザに入り、インターネット接続が完全に機能していることを確認する。そうでない場合は設定する。 5.ターミナルウィンドウを開き、
sudo mount /dev/sda2 /mntを実行する(
/dev/sda2は、ステップ1で取得したデバイス名で置き換えてください(異なる場合))。 6.インストールしたシステムに独立した
/bootパーティションがある場合は、
sudo mount /dev/sda1 /mnt/bootを実行します (
/dev/sda1をステップ 2 で取得したデバイス名で置き換えます。異なる場合)。 7.インストールしたシステムに 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 8.ping -c 4 launchpad.net
を実行して、インターネット接続が chroot 内から完全に機能するかどうかを確認する。以下のようになることを期待する:
PING launchpad.net (91.189.89.223) 56(84) バイトのデータ。
64バイト 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
launchpad-net.banana.canonical.com (91.189.89.223) から 64 bytes: 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統計---。
送信4パケット、受信4パケット、パケットロス0%、時間3003ms
9.パケットを送受信できなかった場合は、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
一般的には、エラーが発生したらこのプロセスを止めるべきだが、これら4つのコマンドのうち、1番目と2番目のコマンドが失敗しても心配する必要はない。
chrootを戻して、もう一度やってみよう:
sudo chroot /mnt
ping -c 4 launchpad.net
10.以下のコマンドを実行して、chroot環境を完全に使える状態にする:
export HOME=/root
export LC_ALL=C
11.11. 64ビット版の dpkg
と apt
の .deb
ファイルをインストールしていなけれ ば、今すぐインストールしてください。インストールしたが設定エラーがあった場合は、 dpkg --configure -a
を実行して修正してください。(うまくいけばうまくいくかもしれませんが...インストールしたシス テムで起動している間に 64 ビット版の dpkg
をインストールすると、 dpkg
が使用できない状態になってしまうかもしれません)。
12.64 ビット版の dpkg
と apt
をインストールし、それらが自動的に 64 ビッ トパッケージをインストールすると仮定すると、32 ビットカーネルをすべて削除し、 64 ビットカーネルをインストールすることができます。32 ビットカーネルを削除するには、dpkg -l | grep linux-
を実行してください。linux-で始まるインストール済みパッケージの一覧が表示されます。具体的には、
linux-generic、
linux-image、
linux-server、
linux-headersで始まるパッケージが対象となる。これらのファイルを削除するには、
apt-get purge ...(
...はスペースで区切られた削除するパッケージのリストに置き換えてください)。 13.13. 削除したパッケージを再インストールしてください。(実際には、例えば
linux-image-3.0.0-13-genericのように、パッケージ名にバージョン番号が含まれているパッケージについては、最新のバージョンのパッケージ名のみをインストールすればよい)。この場合、
apt-get install ...をインストールするパッケージのスペース区切りのリストに置き換えてください。 14.14.ブートローダーの設定を更新し、いくつかのデバイスをアンマウントし、chroot から離脱します: update-grub umount /proc || umount -lf /proc umount /proc || umount -lf /proc umount /dev/pts 終了 sudo mnt/dev を umount する。 15.sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
を実行して失敗しなかった場合は、次に sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
を実行してください。
16.16. sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
を実行して失敗しなかった場合は、次に sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
を実行してください。
17.17. インストールしたシステムに独立した /boot
パーティションがある場合は、そ れをアンマウントします:sudo umount /mnt/bootです。 18.sudo umount /mnt/boot
18. インストールしたシステムの /
パーティションをアンマウントします。
19.ターミナルウィンドウを出て (exit
を実行してください)、ライブ CD システムを再起動 (またはシャットダウン) して、インストールしたシステムで起動します。
20.システムが使用可能かどうか、64ビットカーネルが動作しているかどうかを確認し てください (uname -m
はアーキテクチャが x86_64
であることを示すはずです)。
これを動作させるには、 ia32_libs
や libc6
の 64 ビットバージョンなど、インストールが必要な追加パッケージがあるかもしれない。これらの中には、64 ビット版の dpkg
や apt
をインストー ルしようとすると、必要であることを通知されるものもあります。その他のものについては、必要であることを知らされないかもしれません。
(上記のchroot化とchroot化された環境での操作の説明は、この関連するが異なる手順と、私のいくつかのLaunchpad Answersの投稿、特に#6 こちらと#6 こちらにかなりの部分基づいています。また、64ビットの dpkg
と apt
実行ファイルが32ビットのカーネルを実行しているシステムでは動作しないことを指摘してくれた Caesium に感謝します)。
質問はhttps://askubuntu.com/questions/5018/is-it-possible-to-upgrade-from-a-32bit-to-a-64bit-installationに似ていますが?rq = 1(前に読んでいない場合は、試すことをお勧めします。 答えは良いです。)また、次のリンクを読むことをお勧めします。
https://askubuntu.com/questions/19803/for-better-performance-should-i-install-32-bit-or-64-bit?lq = 1。
https://askubuntu.com/questions/81824/how-can-i-switch-a-32-bit-installation-to-a-64-bit-one?lq = 1。
可能ですか:はい。
簡単ですか:いいえ。!
問題がメモリにある場合は、Ubuntu 32ビットが4 GBを超えるRAM(最大64 GB)を読み取ることができることを知っておく必要があります。 したがって、32ビットまたは64ビットのアーキテクチャを備えたコンピューターで最新のUbuntu 32ビットバージョンを使用し、より多くのRAMを導入しても問題はありません。 追加のRAMを読み取って動作するだけです。
これらの答えはやや時代遅れです。 Debian wikiでDebianのクロスグレーディングが文書化されましたが、それでもお勧めできません。
別のアーキテクチャからのカーネルのインストールは、ここで説明するのと同じくらい簡単になりましたが、新しい「apt」は以前のアーキテクチャからのパッケージを認識しないため、すべてのフロントエンドで多くの壊れたパッケージが報告される場合があります。 これには、すべての依存関係を他のアーキテクチャに変更するか、aptとdpkgを32ビットに戻す必要があります。
したがって、最良のアプローチは、最初に「dpkg --get-selections」の結果を保存し、そこから:i386をストリップして、依存関係のそれぞれについてamd64パッケージをキャッシュにダウンロードすることです。
apt-get --download-only install perl:amd64 python3:amd64 python3-gi:amd64 xorg:amd64...
せいぜい、依存関係の解決には時間がかかり、時間がかかる可能性があります。
これらの手順により、システムは64ビットカーネルで起動しますが、ほとんどのユーザーランドプログラムは変更されません。。
64ビットCPUでシステムをアップグレードした後、32ビット14.04.2 Ubuntu(コードネーム:Trusty)に64ビットカーネルをインストールしたいと思いました。 これを行うには、 root user として次のコマンドを入力しました。
dpkg --add-architecture amd64
apt-get update
apt-get install linux-generic-lts-utopic:amd64
メモ:。
1。 これにより、32ビットカーネルが信頼できるものとして削除される可能性があります-デフォルトでは-更新されたカーネル(utopicのカーネル)が同梱されます。14.04リリースノートを参照してください。 この場合、現在のカーネルは64ビットカーネルと競合してインストールされるため、削除されます。 このアイデアが気に入らない場合は、代わりに古い64ビットカーネルパッケージ「linux-generic-lts-trusty:amd64」を試してみてください。
2。 「--add-architecure」コマンドは不可欠です。 それがなければ、パッケージシステムはさまざまなアーキテクチャのパッケージをサポートしません。Multiarch-HowToを参照してください。
3。 システムに「apt-get」がどのような影響を与えるかを確認するには、「冗長シミュレーションモード」を可能にするオプション「-Vs」で実行します。 これにより、インストールおよび削除するすべてのパッケージが印刷されます。
4。 新しいカーネルを使用してシステムブーツを使用するかどうかは、「grub」構成によって異なります。 root user として、 update-grub
を実行してgrubを更新し、現在のブート構成を印刷します。 リストの最初の画像はデフォルトで起動されます。
5。 別のカーネル画像を選択するには、 / etc / default / grub
から GRUB_HIDDEN_TIMEOUT = 0
行を削除し、 root user update-grub
として実行しました。 起動時に、別のカーネルを選択できるようになりました(キーを押すのに10秒かかります。そうしないと、デフォルトのカーネルでgrubが続行されます)。
6。 最も投票数の多い答えは2011年のものであり、私の意見では絶望的に時代遅れです。 Multiarchを使用すると、複数のアーキテクチャからライブラリパッケージを、あまり苦労せずに同じマシンにインストールできます。
Ubuntu 16.04 Xenialの私のレシピは、標準システムとSSHサーバーを備えた、GUIなしの、新しくインストールされた32ビットUbuntu VMでテストされています。
sudo -s
dpkg --get-selections > pkg1
dpkg --add-architecture amd64
apt update
apt install linux-image-generic:amd64 thermald
(それ以外の場合は、thermald:amd64をインストールし、32ビットカーネルで再起動できません)。
reboot
64ビットカーネルで再起動した後:
sudo -s
unset LANG
apt install apt:amd64 apt-utils:amd64
タイプ 'はい、私が言うようにしてください。!'尋ねられたとき、それは安全になるでしょう。
mkdir /tmp/upgrade
cd /tmp/upgrade
pkgs() { dpkg -l | awk '$4=="'$1'"{print $2}' | awk -F: '{print $1}' | sort -u
}
apt download $(comm -23 <(pkgs i386) <(pkgs amd64))
while ls *amd64*deb
do dpkg -i *amd64*deb
dpkg -l | awk '$1=="ii" && $4=="amd64" {print $2}' | awk -F: '{print $1}' |
while read a
do [ -f ${a}_*amd64*deb ] && rm ${a}_*amd64*deb
done
done
上記のループでは、正常にインストールされ、dpkgリストで「ii」ステータスを取得した.debファイルを削除します。
最初の試みから成功しないため、「dpkg -i」の実行を繰り返す必要があります。
reboot
これで、64ビットカーネルとユーザースペースの両方で、残りのi386パッケージを削除できます。
dpkg --purge $(dpkg -l | awk '$4=="i386"{print $2}')
pkgs1
ファイルに保存したリストで、今後のニーズに使用できます。
ええ、外部アーキテクチャラインは、クロスアーチパッケージをインストールするために最も確実に不可欠です。 しかしその後、他のいくつかのユーザーが述べたようにしてください:
sudo apt-get update
sudo apt-get install linux-image:amd64
sudo apt-get install linux-modules:amd64
sudo init 6 #reboot into new kernel
sudo apt-get install apt:amd64
sudo apt-get install ubuntu-desktop:amd64
それはちょうどそれをするべきです。..
いい質問ですね。いろいろと調べてみましたが、あなたが引用したユーザーストーリー以外には、この方法についての詳細は見つかりませんでした。すべてのドキュメントによると、これはすでに64ビットのOS上で32ビットのアプリケーションを実行するためのものだそうです。
しかし、もしあなたが実験する気があるのなら、以下を試してみてください([1]の私のリンクから派生したものです)。
echo foreign-architecture amd64 | sudo tee /etc/dpkg/dpkg.cfg.d/multiarch
sudo apt-get install linux-image:amd64
32ビットカーネルでは64ビットバイナリを実行できないので、まずamd64カーネルから始める必要があると思います。しかし、64ビットカーネルは32ビットバイナリを実行できるはずです (ia32-libs がインストールされていれば?)。
64ビットカーネルをインストールして起動したら、そこからapt:amd64をインストールし、先に引用したユーザーストーリーに従って、ubuntu-minimal、ubuntu-desktopなどをインストールすればいい。
apt:amd64がインストールされたら、その時点で実質的に切り替わっているので、foreign-architectureの行を削除していいと思います。
免責事項:私はテストする32ビットシステムを持っていないので、これはすべて推測です。幸運を祈る!