アカウント名:
パスワード:
だいたいBIOS自体は対応しているんで行けるんじゃないかなぁ、といまでもニコイチHDDケースとか、RAID対応ケースで、USB/eSATA対応の物は、2TBを簡単に超えられますからねぇ。
で、ここからは苦労した話。
Linuxサーバで使おうと思って8TB(RAID5で6TB)買ってきて、RAIDモードの設定のためにWindows XPに繋いだら、認識すらされなくて、Windows 7に繋ぎ直してモード設定完了。次に、使っていたSlamd64 12.1のカーネルがGPT対応でコンパイルされて無くて、PartedでGPTでパーティション切って、中をLVMでボリューム作って、ファイルコピーが終わってリブートしたら、データが消えたという悲しい出来事が・・・。さらに、GPT対応でカーネルを作り直したら、今度はGPTではないルートパーティションのあるディスクの認識を何故か強制的にGPTでやろうとしてpanic起こして立ち上がらず・・・
で、ソースをよく見ると、linux/fs/partitions/efi.c に、static int force_gpt;static int __initforce_gpt_fn(char *str){ force_gpt = 1; return 1;}__setup("gpt", force_gpt_fn);こんなコードがあるんですけどね、force_gptをゼロに初期化していないので、メモリ初期化しない設定で立ち上げていたウチの環境では、メモリのゴミを拾って強制GPTモードになってた模様。static int force_gpt = 0;と直したら見事にブート&認識成功。
2.6.34のソース見たら同じだったんで、みんなこんな罠には引っかかっていないんですかねぇ?BIOSのメモリチェックで0が入るのを期待しているのかな?
保証されてないよ…。
カーネル等で例外があるかは存じませんが、少なくともC99では規定されています。
JIS X 3010:2003 P.95
静的記憶域期間を持つオブジェクトを明示的に初期化しない場合
そのオブジェクトの型が算術型の場合、(正または符号なしの)0に初期化する。
K&R の頃からそうだったような気がしますがhttp://www.kouno.jp/home/c_faq/c1.html [kouno.jp]
Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
さいきんの64ビットOS対応のPCだったら (スコア:2, 参考になる)
だいたいBIOS自体は対応しているんで行けるんじゃないかなぁ、と
いまでもニコイチHDDケースとか、RAID対応ケースで、USB/eSATA対応の物は、2TBを簡単に超えられますからねぇ。
で、ここからは苦労した話。
Linuxサーバで使おうと思って8TB(RAID5で6TB)買ってきて、RAIDモードの設定のためにWindows XPに繋いだら、認識すらされなくて、Windows 7に繋ぎ直してモード設定完了。
次に、使っていたSlamd64 12.1のカーネルがGPT対応でコンパイルされて無くて、PartedでGPTでパーティション切って、中をLVMでボリューム作って、ファイルコピーが終わってリブートしたら、データが消えたという悲しい出来事が・・・。
さらに、GPT対応でカーネルを作り直したら、今度はGPTではないルートパーティションのあるディスクの認識を何故か強制的にGPTでやろうとしてpanic起こして立ち上がらず・・・
で、ソースをよく見ると、linux/fs/partitions/efi.c に、
static int force_gpt;
static int __init
force_gpt_fn(char *str)
{
force_gpt = 1;
return 1;
}
__setup("gpt", force_gpt_fn);
こんなコードがあるんですけどね、force_gptをゼロに初期化していないので、メモリ初期化しない設定で立ち上げていたウチの環境では、メモリのゴミを拾って強制GPTモードになってた模様。
static int force_gpt = 0;
と直したら見事にブート&認識成功。
2.6.34のソース見たら同じだったんで、みんなこんな罠には引っかかっていないんですかねぇ?
BIOSのメモリチェックで0が入るのを期待しているのかな?
kaokun
Re: (スコア:0)
通常アプリではELFバイナリのBSS領域に割り当てられ、ロード時にゼロクリアされるんじゃなかったかな。
Re: (スコア:0)
何もしてなかったらそんな所までたどり着けない。
Re: (スコア:0)
保証されてないよ…。
Re:さいきんの64ビットOS対応のPCだったら (スコア:1)
カーネル等で例外があるかは存じませんが、少なくともC99では規定されています。
JIS X 3010:2003 P.95
Re: (スコア:0)
K&R の頃からそうだったような気がしますが
http://www.kouno.jp/home/c_faq/c1.html [kouno.jp]
初期化される! (スコア:0)
初期化した場合、dataで0状態。
メモリのゴミを拾ってっていうのが問題ではなくて、配置される場所では?
Re: (スコア:0)
static int a; のときも static int a=0; のときも、readelfすると同じで