
Ubuntu日本語フォーラム

ログインしていません。
以前、10.04LTSにてFDのマウントができない、という件でFD0ではなくfstabのFD0をFD0u1440に変更することでマウントすることは可能になりました。
しかし、/dev/fd0 がFDDと関連付けされていないため、根本的にシステムはフロッピードライブを認識できていません。
apt-get install grub
でgrub-legacyをインストールして、Grub起動FDを作成しようとしたのですが、
GRUB>root fd(0)
の段階で存在しないデバイスのエラーが表示されてしまい、試しにfd(0u1440)としてみても構文エラーとなり先へ進めません。
現在はGrub2ブートローダーをUSBメモリーに入れて、XPとのデュアルブートを行っていますが、USBメモリーを一旦抜くと再度BIOS設定しなければならず、扱いの簡単な起動FDにしたいと思っています。linux領域をext3ファイルシステムにしてあるのはそのためです。
XPの入っているsdaにはgrubと互換性のないソフトがあるせいで、grubを外部メディアに置くしかありません。
PCの構成は以下の通りです。
/dev/sda1 NTFS Windows XP
/dev/sda2 NTFS
/dev/sda3 FAT32
/dev/sdb1 ext3 /
/dev/sdb2 extended
/dev/sdb5 ext3 home
/dev/sdb6 linux swap
フォーラム内やGoogleでさんざん検索したのですが、10.04LTSがFDDを認識できないという問題は、不思議なことに誰も気にしていないようです。
この問題を解決する方法はあるのでしょうか。
オフライン
ひじょーにLegacyなデバイスなので、認識しないってのは無いんじゃないかと思いますよ。
Webに情報が少ないのは、最近のナショナルブランドなPCにFDDが付いてないからかもしれませんね。
さて、どういうハード構成のPCなのかわかりませんが
1) BIOSでFDDが使用可となってるかどうかの確認。
2) 増設等ケースを開けたときに、誤ってケーブルを抜いてしまってないかどうかの確認。
なんてことを最初にチェックすることが、最初に思い浮かびます。
オフライン
zaganさん、お返事ありがとうございます。
zagan による投稿:
ひじょーにLegacyなデバイスなので、認識しないってのは無いんじゃないかと思いますよ。
Webに情報が少ないのは、最近のナショナルブランドなPCにFDDが付いてないからかもしれませんね。
さて、どういうハード構成のPCなのかわかりませんが
1) BIOSでFDDが使用可となってるかどうかの確認。
2) 増設等ケースを開けたときに、誤ってケーブルを抜いてしまってないかどうかの確認。
なんてことを最初にチェックすることが、最初に思い浮かびます。
1)のBIOSですが、使用する設定になっています。
2)については、fstabを書き換えることにより、ユーザー権限で mount /media/floppy0 でフロッピーディスクをマウントできることを確認しています。
とりあえずマウント、読み書きは可能な状態にあるのですが、/dev/fd0がFDDとして認識されていないのは確かです。
メーリングリストで10.04LTSはFDをマウントできない、という情報は見つかりました。
fstabのfd0をfd0u1440(メディアサイズ1.4MB)に書き換えることででFDをマウントできるようになるというのは以前こちらのフォーラムで教えていただきました。
オフライン
すみません、Subjectだけ読んで反応してしまいました。
しかも良く分かってないので、有効な回答が書けません。
ただ
/dev/sda1 NTFS Windows XP
/dev/sda2 NTFS
/dev/sda3 FAT32
/dev/sdb1 ext3 /
/dev/sdb2 extended
/dev/sdb5 ext3 home
/dev/sdb6 linux swap
の構成のうち、どのパーテーションにmbrを書き込んだのか、sdaとsdbそれぞれの容量とかを書かれると、解決に結びつくかもしれません。
オフライン
PCのハードウエア構成は、
Intel P35 Chipset (ICH7)
Intel Core2Quad Q9400
DDR2DIMM 2GBx2
nVIDIA GeForce 250GTS
Optical Drive: AD7240 S-ATA
HDD: Western Digital S-ATA 500GBx2
FDD: MITSUMI 2Mode
このコマンドしか覚えていなかったので、sudo fdisk -lu の結果を貼っておきます。
ディスク /dev/sda: 500.1 GB, 500107862016 バイト
ヘッド 255, セクタ 63, シリンダ 60801, 合計 976773168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xdfb96de3
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 63 430076114 215038026 7 HPFS/NTFS
/dev/sda2 430076115 901117979 235520932+ 7 HPFS/NTFS
/dev/sda3 901117980 968221484 33551752+ c W95 FAT32 (LBA)
ディスク /dev/sdb: 500.1 GB, 500107862016 バイト
ヘッド 255, セクタ 63, シリンダ 60801, 合計 976773168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x06647a77
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 2048 156250111 78124032 83 Linux
/dev/sdb2 156252158 383561727 113654785 5 拡張領域
/dev/sdb5 156252160 351561727 97654784 83 Linux
/dev/sdb6 351563776 383561727 15998976 82 Linux スワップ / Solaris
ディスク /dev/sdc: 4118 MB, 4118282240 バイト
ヘッド 255, セクタ 63, シリンダ 500, 合計 8043520 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0d0c0b0a
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 * 63 8032499 4016218+ 83 Linux
/dev/sda にはXPのNTLDRがあり、Linux本体がある/dev/sdbにはMBRはなし、/dev/sdcはext2でフォーマットしたUSBメモリーで、ここにGrub2が入っています。
オフライン
GRUB レガシーは、/boot/grub/device.map を参照して、インストールデバイスを探すようです。
device.map に (fd0) の行が有るか、確認してください。
オフライン
Durandal による投稿:
XPの入っているsdaにはgrubと互換性のないソフトがあるせいで、grubを外部メディアに置くしかありません。
/dev/sda にはXPのNTLDRがあり、Linux本体がある/dev/sdbにはMBRはなし、/dev/sdcはext2でフォーマットしたUSBメモリーで、ここにGrub2が入っています。
Linuxの入っている「/dev/sdb」のMBRにGRUBをインストールしないでいるのは、BIOSで起動させるHDDを選択できないから、ということなのでしょうか。
BIOSで選択できるのであれば「/dev/sdb」にGRUBをインストールする方が良いように思います。
※ HDDにGRUBをインストールする時は必ずデバイスファイル名を確認してください。
以下は(成功しなかったので)情報です。
Durandal による投稿:
以前、10.04LTSにてFDのマウントができない、という件でFD0ではなくfstabのFD0をFD0u1440に変更することでマウントすることは可能になりました。
しかし、/dev/fd0 がFDDと関連付けされていないため、根本的にシステムはフロッピードライブを認識できていません。
apt-get install grub
でgrub-legacyをインストールして、Grub起動FDを作成しようとしたのですが、
GRUB>root fd(0)
の段階で存在しないデバイスのエラーが表示されてしまい、試しにfd(0u1440)としてみても構文エラーとなり先へ進めません。
こちらでも、方法は違いますがブートフロッピーが作成できるか試してみました。
「grub」パッケージをインストールし、私の環境でもfd0ではマウントできませんのでfd0u1440でマウントさせて下記コマンドを実行してみたところ、
sudo grub-install /dev/fd0u1440 --root-directory=/media/floppy0
下記のエラーが返ってきてしまいました。
Probing devices to guess BIOS drives. This may take a long time. /dev/fd0u1440 does not have any corresponding BIOS drive.
上記コマンドの実行では、「boot/grub/device.map」が作成されただけで、GRUBのインストールはされませんでした(「sudo file -s /dev/fd0u1440」で確認)。
これは「/dev/fd0」としても同じエラー(「fd0u1440」も同じ)となります。
「--recheck」オプションを付けても全く同じです。
ということで、やはり「/dev/fd0」でマウントできないと、"通常のやり方" ではブートフロッピーを作成することはできないのかもしれません。
オフライン
>Tako0909さん
Grub-legacyに入れ替えてみたのですが、/boot/grub/device.mapというファイルがありませんでした。apt-get install grub以外に何かする必要があったのでしょうか。
>Templerさん
以前/dev/sdbにGrub2を入れて、PC起動の都度、起動HDDの順序をBIOSで変更していたのですが、非常に面倒だったので・・・。
Ubuntu9.04まではOSインストール時にfd(0)にGrub(legacy)を入れることができたので、Grubフロッピーディスクを差すか抜くかでOSの切り替えができて便利だったのですが。
もし、Ubuntu開発チームがこの問題を認識しているなら、アップデートで直るのではないかと期待していたのですが、一向に改善されませんね。
「場所」で「コンピューター」を開くと「フロッピー・ドライブ」のドライブアイコンがあるので、FDDを捨てたわけではないとは思うのですが。
正直Linux初心者には壁が厚いです。
オフライン
GRUB>root fd(0)
fd(0)ではなく(fd0)です。
rootコマンドを実行する前に
GRUB> device (fd0) /dev/fd0u1440
を実行すればどうなるでしょうか?
device.mapがなければテキストエディタで作ればいいです。
上記でうまくいくようであれば内容は、(fd0) /dev/fd0u1440です。
オフライン
GRUBプロンプトでの作業を殆どしたことがないのでスルーしていましたが、jackalopeさんの方法でうまくいきそうな感じです。
ということで、以下はまた情報となります。
https://forums.ubuntulinux.jp/viewtopic … 107#p44107
上記リンクを参考にGRUB2でのブートフロッピーの作成を試みてみましたが、「grub-mkrescue」コマンドの仕様が変更(オプションなども一新)されており、当時のままのやり方は通じませんでした。
Ubuntu 10.04でGRUB2のブートメディアを作成するには以下の方法となります。(なお、確認したのはフロッピーディスクのみで他のメディアでの確認はしておりません)
1.
まずは作業ディレクトリを作成して移動します。
cd `mktemp -d`
2.
上記で作成した作業ディレクトリ配下にあるファイルもイメージファイルに書き込むようにしますので、「/boot/grug/grub.cfg」をコピーしておきます。(他のファイルを含めることもできますが、フロッピーの場合は既に容量がギリギリということを考慮してください)
mkdir -p boot/grub cp /boot/grub/grub.cfg boot/grub/
(コピーした「grub.cfg」を編集すれば、メニューを変更することができます。MBRへのチェインロードを追加しておくと良いでしょう。ただし、コピーしたgrub.cfgも書き込み不可となっていますので、書き込む際はパーミッションを変更する必要があります)
3.
そして、イメージファイルを作成します。(コマンドの最後にある、現在のディレクトリを示す「.」を抜かすと、作業ディレクトリに用意したファイルが含まれなくなります。その場合、grub.cfgの含まれないイメージファイルとなります)
※ ここでは作成するイメージファイル名を「boot-floppy.img」としています。
grub-mkrescue --output=boot-floppy.img .
4.
ブートメディアの作成の対象がフロッピーディスクの場合は以下の方法でフロッピーに書き込みます。
sudo dd if=boot-floppy.img of=/dev/fd0u1440 bs=32k
※ なお、作成されるイメージファイルはフォーマットがiso9660となっていますので内容を変更することはできなさそうです。
以上で終了ですが、モジュール化されたGRUB2ですので、GRUB Legacyに比べ起動が遅いです…。
(スレッドタイトルの話に戻すと、udevが修正されるまで我慢ということになるかと思います)
オフライン
追記。
#10の方法は、イメージファイルを残したまま「3.」を再び行うと、イメージファイルの中にイメージファイルが作成されるので、肥大化していきます。
作成をやり直すときは「1.」から行うか、イメージファイルを削除してください。
というのは面倒なので、以下のように訂正。
cd `mktemp -d` mkdir -p root/boot/grub cp /boot/grub/grub.cfg root/boot/grub/ grub-mkrescue --output=boot-floppy.img root
オフライン
Templerさん、Jackapoleさん、多くの情報をいただきありがとうございます。
これから1つ1つ試してみます。
grub>root fd(0) はたしかに間違いでした。(fd0)ですね。
それと、grub-legacyをインストールしただけでは/boot/grub/device.mapはないこともわかりました。端末からgrubコマンドを起動してrootの設定をしようとして失敗したあと、ふと確認してみたら/boot/grub/device.mapファイルが作成されていました。
オフライン
#12を一部訂正します。
>それと、grub-legacyをインストールしただけでは/boot/grub/device.mapはないこともわかりました。端末からgrubコマンドを起動してrootの設定をしようとして失敗したあと、ふと確認してみたら/boot/grub/device.mapファイルが作成されていました。
device.mapは作成されていませんでした。
GRUB> device (fd0) /dev/fd0u1440 の結果ですが、FDDのアクセスランプが点灯しました。
grub> root (fd0) を実行したら何のエラーもなくすんなり通ってしまいました。これは本当にケアレスミスでした。
とりあえずgrub-legacyのubuntu起動FDを作成できました。
詳細は明日にでも報告いたします。
オフライン
grub-legacyでUbuntu10.04LTSの起動フロッピーを作った手順です。
$ sudo mount /dev/fd0u1440 /media/floppy0
$ sudo mkdir -p /media/floppy0/boot/grub
$ sudo cp /usr/lib/grub/i386-pc/* /media/floppy0/boot/grub
$ sudo grub
grub> device (fd0) /dev/fd0u1440
grub> root (fd0)
grub> setup (fd0)
grub> quit
$ sudo update-grub
色々やったのでこれが正確な手順だったのか・・・あまり自信がありません。
フロッピーは/media/floppy0にマウントされているので、デスクトップのフロッピーのアイコンからフロッピーの内容が見えます
/boot/grub/menu.lstが生成されているのを確認して、timeout 30に増やしておきました。
メニューエントリーの中にUbuntu10.04.1 LTSのカーネル、同じくカーネルのrecovery mode、Grub2へのチェインロード、memtest86+という項目ができていました。フロッピーを入れてPCを起動すればUbuntuが起動するという当初の目的は果たすことができました。
Grub2の起動フロッピーについては、後でチャレンジしてみます。
オフライン
$ sudo apt-get install grub2
でGrub2が使えるようにしてから、Templerさんの#10の方法でGrub2の起動フロッピーを作成することができました。
スレッドタイトルからGrub起動FDの作成の方に流れがずれてしまいました。
結局udevの修正が来るまではフロッピーディスクが普通に扱えるようにはならない、ということですね。
オフライン
10.10にてgrub.cfg を変更したISOイメージの作成ができなくて
困っていたところ、上記の手順にてできたので書き込みます。
助かりました。
--overlay のオプションがなくなっていて困り果ててました。
オフライン