![ネイティブ Debian X32 仮想マシン?](https://rvso.com/image/1482497/%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%20Debian%20X32%20%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%3F.png)
ネイティブDebian X32仮想マシンをセットアップしようとしています。X32はX86やX64とは異なることに注意してください。詳細については、x86、x32、x64 アーキテクチャの違いは何ですか?Stack Overflow で公開されています。Red Hat などの他のディストリビューションでは、サーバー用の X32 ビルドが提供されています。
Debian は X32 ISO を提供していません。Debian 8.2 amd64 をインストールしており、カーネルは 32 ビット構成で起動しています。
$ dmesg | grep -i x32
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=69773d98-b9fa-4695-8392-92759d8e6094 ro syscall.x32=y syscall.x32=y quiet
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=69773d98-b9fa-4695-8392-92759d8e6094 ro syscall.x32=y syscall.x32=y quiet
[ 0.316500] Enabled x32 syscalls
DebianのX32 ポート wiki次のステップは QEMU chroot をセットアップすることだとわかります。QEMU chroot を回避して、これをネイティブ X32 インストールに変換したいと考えています。
質問: このインストールをネイティブ X32 インストールに変換するにはどうすればよいですか?
X32用に設定されたカーネルを起動していますが、ユーザーランドツールはないそのように構成されています。たとえば、コンパイラはおそらく私にとって最も重要ですが、X32 用には構成されていません。
$ g++ -march=native -dM -E - </dev/null | egrep "(x86_64|amd64|ilp)"
#define __x86_64 1
#define __amd64 1
#define __x86_64__ 1
#define __amd64__ 1
ILP32
または が表示されません__ILP32__
。つまり、X32 モードではないということです。-march=native
に変更しても-mx32
違いはありません。
これがそのマシンです:
$ uname -a
Linux debian8-x32q 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
これが私のsources.list
しかし、X64 バイナリではなく X32 バイナリを取得するために何を有効にすればよいのかは明らかではありません。
deb http://ftp.us.debian.org/debian/ jessie main
deb-src http://ftp.us.debian.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
# jessie-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ jessie-updates main
deb-src http://ftp.us.debian.org/debian/ jessie-updates main
以下の作品:
$ sudo dpkg --add-architecture x32
しかし、APT は破られます:
$ sudo apt-get update
Ign http://ftp.us.debian.org jessie InRelease
Hit http://ftp.us.debian.org jessie-updates InRelease
Hit http://ftp.us.debian.org jessie Release.gpg
Hit http://ftp.us.debian.org jessie Release
Hit http://security.debian.org jessie/updates InRelease
Hit http://ftp.us.debian.org jessie-updates/main Sources
Get:1 http://ftp.us.debian.org jessie-updates/main amd64 Packages/DiffIndex [367 B]
Get:2 http://ftp.us.debian.org jessie/main Sources [7,058 kB]
Hit http://security.debian.org jessie/updates/main Sources
Hit http://security.debian.org jessie/updates/main amd64 Packages
Hit http://ftp.us.debian.org jessie/main amd64 Packages
Fetched 7,058 kB in 3s (2,066 kB/s)
W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease Unable to find expected entry 'main/binary-x32/Packages' in Release file (Wrong sources.list entry or malformed file)
W: Failed to fetch http://ftp.us.debian.org/debian/dists/jessie-updates/InRelease Unable to find expected entry 'main/binary-x32/Packages' in Release file (Wrong sources.list entry or malformed file)
W: Failed to fetch http://ftp.us.debian.org/debian/dists/jessie/Release Unable to find expected entry 'main/binary-x32/Packages' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.
問題がある場合は、ボックスに SSH で接続します。移植されていないウィンドウ マネージャーやその他の GUI プログラムについては気にしません。基本的に、カーネル、基本インストール、ビルド ツールを X32 モードにして、X32 でソフトウェアをテストする必要があります。