ページ 24

Re: Grub2config

Posted: 21/07/15(木) 22:12
by thinkpadnerd
シノバー さんが書きました: 21/07/14(水) 22:58 「shinobarは過去の人」などと言われてしまいました。
"old-timer" ... Barry さんは「古参」の意味で使われたのではないかと思います。

pre4 を legacy bios のマシンに使ってみました。

ThinkPad X121e (uefi bios ですが、出荷時の設定は legacy bios モード)
sda1 ... ntfs, windows リカバリー用。
sda2 ... ntfs, windows c: ドライブ、いくつかの puppy も同居。
sda4 ... ntfs, 工場出荷時リカバリー用。
sda5 ... ext2, データ等の置き場。save directory 方式の xenialpup がここにあります。

うまくいきました。ブートローダや menu.lst は sda1 にあります。

あと、細かいことですが、
メッセージ "Where the bootup loader install to?" は、文法的には
"Where to install the boot loader (to)?" のほうがよさそうです。( )内の to は省略可です。

Re: バリーさんに見つかったらしい

Posted: 21/07/15(木) 22:39
by タロ兵衛
シノバー さんが書きました: 21/07/14(水) 22:58 別件ですが、パピー創始者の バリーさんがこの Grub2configのことを紹介してくれました。
バリーさんブログ掲載おめでとうございます

UEFIは仕事でも難儀しております。
私レベルでは、有名所のディストリのブートを間借りするのが精一杯で。
最近時間が取れませんが、オリンピック連休で少し試してみたいと思います

USBから起動しないことがある

Posted: 21/07/16(金) 19:58
by シノバー
@thinkpadnerd さん、 @タロ兵衛 さん、ありがとうございます。

友人からもらったDynabook 2012年モデルで主にテストを繰り返していますが、USBからの起動ができるときとできないときがあります。
Dynabookの場合電源ON時に F12キー連打で起動デバイスを選択できるのですが、そこにUSBの型番が表示されない、すなわちBIOSがUSB機器を検出できていないので、これを選んでも失敗し、内蔵HDDから起動します。
ネット情報でも、USBの銘柄に依存するという情報も散見されます。

どうやらその理由と対策が分かった気がします。
Dynabookの場合電源ON時に F2キー連打でBIOSの設定に入ります。そこで何も変更せずにBIOS設定を抜け出し、再起動します。
今度はUSB機器を認識し、そこから起動できます。
すなわち、電源を入れてからBIOSがUSB機器を認識するのに時間が掛かるようで、その時間稼ぎをしてやればよいようことですね。
USBの銘柄に依存もうなづけます。USB3.1だから、新しいからとかは関係ないようです。

64bitパーティション

Posted: 21/07/17(土) 19:34
by シノバー
パピー上の GPartedなどで作る場合は良いのだけれど、Ubuntuなどに ext4パーティションンを作らせると 64bitオプションが標準になっています。
この64bitの ext4パーティションを grub2はサポートしていますが、Grub4Dosはサポートしていません。

問題が生じるのは、旧いBIOSでWindowsがプレインストールされている場合、ブートパーティションが ntfsファイルシステムです。ここに grub2をインストールできないために、Grub4Dosを代わりに使うことにすると、64bitの ext4パーティション上にあるものはブートアップに失敗します。

Grub2qは vfatにはインストールできるのに、ntfsにはインストールできない。そこがそもそもの問題なんだけどなあ。

Re: 64bitパーティション

Posted: 21/07/18(日) 08:28
by タロ兵衛
シノバー さんが書きました: 21/07/17(土) 19:34 旧いBIOSでWindowsがプレインストールされている場合、ブートパーティションが ntfsファイルシステムです
これってUEFIのルール違反な気がします。先頭はVFATですよね
と、文句言ってもプリインストールじゃねぇ…

Re: 64bitパーティション

Posted: 21/07/18(日) 09:43
by シノバー
シノバー さんが書きました: 21/07/17(土) 19:34Grub2qは vfatにはインストールできるのに、ntfsにはインストールできない。そこがそもそもの問題なんだけどなあ。
UEFI用の grubx64.efi はntfsオッケーなのに、MBR起動で使われる core.img がntfsサポートが無い」のが問題。core.img は vfat や ext のモジュールは組み込まれているらしいので、同様に ntfs のモジュールも組み込んだ形でコンパイルすればよいのではないか。でも、その方法が分からない……。

Re: Grub2config

Posted: 21/07/19(月) 19:14
by カラフル
シノバー さんが書きました: 21/07/18(日) 09:43 core.img は vfat や ext のモジュールは組み込まれているらしいので、同様に ntfs のモジュールも組み込んだ形でコンパイルすればよいのではないか。
grub2とその依存関係をインストールしてここを参考に

grub2-ntfs-install.sh
https://gist.github.com/qwerty12/bf393a ... 3ff3eae2de


ext2にフォーマットしたusbメモリにgrub2をインストール

例)対象デバイスがsdcの場合
grub-install --no-floppy --modules=ntfs --root-directory=/mnt/sdc1 --boot-directory=/mnt/sdc1/boot /dev/sdc
を端末で実行

/usr/local/frugalpup/grub2-mbr.tar.xzの中の/boot/grub/i386-pcフォルダを中身ごと
/sdc1に出来た/boot/grub/i386-pcに替えると上手く行きそうです

Bionicpup64で実験してます

Re: Grub2config

Posted: 21/07/20(火) 00:40
by シノバー
カラフル さんが書きました: 21/07/19(月) 19:14 例)対象デバイスがsdcの場合
grub-install --no-floppy --modules=ntfs --root-directory=/mnt/sdc1 --boot-directory=/mnt/sdc1/boot /dev/sdc
を端末で実行

/usr/local/frugalpup/grub2-mbr.tar.xzの中の/boot/grub/i386-pcフォルダを中身ごと
/sdc1に出来た/boot/grub/i386-pcに替えると上手く行きそうです
おお〜!!!そういう手があったのですね。ありがとうございます。

USBメモリを vfat/ntfs/ext2 いずれかにフォーマットし、 /mnt/sdb1 にマウントして
grub-install --no-floppy --modules="ext2 fat ntfs part_msdos part_gpt" --root-directory=/mnt/sdb1 --target=i386-pc --grub-setup=/bin/true /dev/sdb

モジュール part_gpt はデフォルトでは入らないようなので、加えました。 --grub-setup=/bin/true はMBRに書き込みしない設定で、USBメモリなら必要ないかも。

NTFSサポート

Posted: 21/07/21(水) 00:30
by シノバー
Windows7プレインストール機はブートパーティションがNTFSフォーマットです。これに対処するため @カラフル さんの情報をもとに、USBメモリをNTFSでフォーマットし、起動に成功しました。しかし、Windows7プレインストールの実機では失敗しました。

Windowsはブートパーティションに /Boot というディレクトリを作ります、いっぽうGrub2のデフォルトのプレフィクスは /boot/grub です。
Grub2の core.img をGrub4Dosのgrldrが起動するのですが、grldrはパス名の大文字と小文字を区別しないので、/Boot内を探して、 core.img を見つけるのに失敗します。

結論として、/boot/grub/i386-pc/core.img を /Boot/grub/i386-pc/core.img にコピーすることで起動に成功しました。

Grub2config preview 5

Posted: 21/07/21(水) 01:19
by シノバー
Windows7プレインストール機などブートパーティションがNTFSである場合でもGrub2をインストールするよう対処しました。この場合はMBRブートのみの対応です(UEFIブート不可)。

grub2config-1.9.9-pre5
http://shinobar.server-on.net/puppy/opt/test/
↑からダウンロードし、テストください。

Re: Grub2config

Posted: 21/07/21(水) 19:38
by カラフル
シノバー さんが書きました: 21/07/21(水) 00:30 Grub2の core.img をGrub4Dosのgrldrが起動するのですが、grldrはパス名の大文字と小文字を区別しないので、/Boot内を探して、 core.img を見つけるのに失敗します。
--boot-directory=を足してboot以外のフォルダーを指定で回避出来そうな

例)
grub-install --no-floppy --modules="ext2 fat ntfs part_msdos part_gpt" --root-directory=/mnt/sdb1 --boot-directory=/mnt/sdb1/grub-boot --target=i386-pc --grub-setup=/bin/true /dev/sdb

menu.lstの

kernel /boot/grub/i386-pc/core.imgを

kernel /grub-boot/grub/i386-pc/core.imgに書き換え

Re: Grub2config

Posted: 21/07/27(火) 08:52
by シノバー
@カラフル さん、ありがとうございます。その方法も考えましたが、FrugalPupとの互換性なども考え、core.img コピーの方法でいくことにします。

Grub2config preview 6

Posted: 21/07/27(火) 08:56
by シノバー
grub2config-1.9.9-pre6 をアップしました。GUIが少し変わっています。
http://shinobar.server-on.net/puppy/opt/test/

Re: Grub2config

Posted: 21/08/01(日) 20:27
by タロ兵衛
使ってみました(grub2config-1.9.9-pre5)
使用PCは2013〜4年ぐらいのwindows7-64 homeマシン
(DELL Inspiron 3647 i3)
bootはもともとvfatなので心配はしていませんでしたが、
予想通りあっけなくインストールできました。
迷った所は、puppy本体のインストールで grub4dos 入れるか?の問でしょうか
後でGrub2config入れるからnoにしましたが、正解だったようです

正常にPuppyもwindowsも普通に起動します

Re: Grub2config

Posted: 21/08/01(日) 23:18
by thinkpadnerd
pre6 を使ってみました。

マシンは ThinkPad X121e, windows 10 (出荷時は windows7)。
UEFI bios ですが、legacy bios モード。

sda1 ... ntfs, windows リカバリー用。
sda2 ... ntfs, windows c: ドライブ、いくつかの puppy も同居。
sda4 ... ntfs, 工場出荷時リカバリー用。
sda5 ... ext2, データ等の置き場。save directory 方式の xenialpup がここにあります。

残念ながら、うまくいきませんでした。
-> 添付画像
ファイル normal.mod は存在するのですが...

grub4dos config で修復しました。
あと、細かいことですが、生成される menu.lst の "default=" が "defalt=" になっています。