[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:09628] Re: 8G over disk setup
佐野@浜松です。
武藤@イソターネット協会さん:
> sano> BIOS = LARGE, C/H/S=1653/255/63 な状態で 200MByte 程度の
> sano> 「緊急起動用 root」を作ってしまって (後で何か起きた時にも
> sano> 役に立つでしょう) そこにとりあえず最小限のシステムを構築
...
> そうですね、やってみます。
カーネルの再構築もしようとすると 200MB ではちょっと狭いかも
しれませんね。 500MB くらい取っておいたほうが良いかも。
> マザーボードは AOpen AX59Pro を使ってますです。
すみません、これがそうかどうかはわかりませんです。
> sano> > ディスクパーティションの書き込みに失敗してしまうと
> sano> > FATAL ERROR: Cannot read disk drive
> sano> > となってしまってcfdiskでの調査は出来ませんです。
> sano>
> sano> cfdisk -z /dev/hda で起動することは可能ですか ?
>
> はい、可能でした。
これは、いったん書き込みに失敗したことで、パーティション
テーブルが読めなくなっているために -z オプションを
付けないと cfdisk が起動できなくなっているのでしょう。
> sano> 良いのでしょうが、もしできなければカーネルにパッチを当てる
> sano> 必要があるかもしれません。 LBA を使うかどうかの制御は
> sano> ブートオプションではできないみたいですから。
ちょっと 2.0.34 の drivers/block/ide.c への変更を書いてみました。
テストしてないのでちゃんと動くかどうかわかりませんが、以下の変更
は、 LBA アクセスのためのブートオプション "hda=lba" を追加する
意図で書いたものです。
--- ide.c.2034 Sat Nov 7 00:22:00 1998
+++ ide.c Sat Nov 7 00:40:57 1998
@@ -638,7 +638,11 @@
#endif /* CONFIG_BLK_DEV_IDEFLOPPY */
if (drive->media != ide_disk)
return 0x7fffffff; /* cdrom or tape */
- drive->select.b.lba = 0;
+ if(drive->select.b.lba != 1) {
+ drive->select.b.lba = 0;
+ } else {
+ id->lba_capacity = capacity;
+ }
/* Determine capacity, and use LBA if the drive properly supports it */
if (id != NULL && (id->capability & 2) && lba_capacity_is_ok(id)) {
if (id->lba_capacity >= capacity) {
@@ -3085,7 +3089,7 @@
if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) {
const char *hd_words[] = {"none", "noprobe", "nowerr", "cdrom",
"serialize", "autotune", "noautotune",
- "slow", NULL};
+ "slow", "lba", NULL};
unit = s[2] - 'a';
hw = unit / MAX_DRIVES;
unit = unit % MAX_DRIVES;
@@ -3117,6 +3121,9 @@
goto done;
case -8: /* "slow" */
drive->slow = 1;
+ goto done;
+ case -9: /* "lba" */
+ drive->select.b.lba = 1;
goto done;
case 3: /* cyl,head,sect */
drive->media = ide_disk;
「緊急用ルート」をインストールできたら、カーネルを再構築して
試してみることもできるでしょう。
--
<sano@xxxxxxxxxxxxxxxxxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)