最近 Virtual Box をインストールしたのですが、どの OS にも 64 ビット バージョンが提供されていない理由がわかりません。
そこで、インストールされているものを調べたところ、何が起こっているのかを調べるために 3 つの異なるコマンドを見つけました。
uname -a
明らかにする:
Linux kubuntuBox 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
どうやらKubuntuの64ビット版をインストールしたようです
私が見つけた 2 番目のコマンドはフラグを調べます。
grep flags /proc/cpuinfo
次の行が 8 回出力されます。
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
なぜ8回出力されるのかよく分かりませんが、出力されています。出力されているlahf_lm
のに出力されていないのは奇妙です。lm
私が見つけた最良のコマンドは、getconf WORD_BIT
出力が32
明瞭なものでした。
今、私は混乱しています。確かに Kubuntu の 64 ビット バージョン (14.04) をインストールし、およそ月に 1 回 dist-ugrades を実行していますが、OS は 32 ビット モードで実行されているようです。
なぜこのようなことが起こるのでしょうか? また、どうすれば解決できるのでしょうか? Kubuntu を再インストールする必要がありますか?
答え1
実に簡単です。 を正常に実行したのでgetconf
、それを見てみましょう。次のコマンドを実行します。
file $(which getconf)
次のような出力が表示されます:
/usr/bin/getconf: ELF 64 ビット LSB 実行ファイル、x86-64、バージョン 1 (SYSV)、動的リンク、インタープリター /usr/lib/ld-linux-x86-64.so.2、GNU/Linux 2.6.32 用、BuildID[sha1]=e9b5e04a7d7c7552abb2e260d9c17c8ffb4ce2a3、ストリップ済み
...これは明らかに 64 ビット システムを実行していることを示しています。そうでなければ、結局 64 ビット プログラムを実行することはできません。
出力uname
からもそれがx86_64
カーネルであることが明確にわかります。
getconf
単に間違っています (または、意味がありません)。/proc/cpuinfo
間違っている可能性もありますが、そこに何が書かれているかはカーネル内の単純なパーサーに依存します。
システム内のすべてのプロセッサの情報が含まれるため、4 コア CPU では 4 つのブロックになります。ハイパースレッディングがアクティブな場合は 2 倍になります。