May 07, 2023

最新のノートPCを最新のTiny Core 64で起動する

前説

最新のコンピューターを使うには新しい知識が必要だ。それらはどんどん古くなる。
アップデートしないといけないんだけど、僕の場合はどこかに書いておかないと忘れるので備忘録として書いておく。
今回、オーディオの話はないんだけど、Tiny Coreはうちではオーディオ以外で使うことはあまりなさそうなので、オーディオのエントリーにしておく。

まず今回、HP ProBook 450 G9を入手した。
HPのネットショップで注文。
メモリはデフォルトの8GB DDR4-3200のままだが、CPUを「Intel(R) Core(TM) i7-1255U」に変更。最大4.7GHzで走る。
新品のPC購入、しかも10万円以上なんて、たぶんMacBook Pro (Mid 2010)以来じゃないかな。

450 G9、とりあえずTiny Coreを走らせようとして分かったこと。

ブートはセキュリティがかかっている。
流石、最新型だ。
セキュアブートをOFFにしないとUSBからは起動しない。
OFFにしていたら、元々インストールされているWindows11からは起動できなくなる。ONに戻したら起動可能になる。
ちょっと、ややこしい。
側から見ただけではONなのかOFFなのか分からない。覚えておくか、BIOSの確認が必要だ。

32bit OSは起動しない。
つまり、Tiny Coreのインストール用イメージである「CorePlus」は起動できない。
2019年10月のエントリー(http://blown-lei.net/endive/blosxom.cgi/audio_diary/20191027a.htm)に書いてある手法は、そのままでは使えないことが分かった。

途中、ProBook 430 G5も弄ってみた。

先ず、「TinyCorePure64-14.0」のイメージをUSBメモリに書き込み、PCに刺す。
PC起動、escキー、f10キーからBIOS設定画面に移行。
Advanced画面を開く。
Secure Boot Configurationから、Configure Legacy Support and Secure Boot を「Legacy Support Enable and Secure Boot Disable」に設定。
Boot Optionから、起動優先順位でUSBを上げる。

Main画面を開き「Save Changes and Exit」を選択。「Yes」をクリック。
PCが再起動。
grub2の起動画面が表示される。
この時点で「tc」が選択されている。enterキー。
Tiny Core 起動。
こんな感じ。
このようにBIOSを設定したら、起動できる。

f9キーからのBoot Menuではどうかというと、USBからの起動で「UEFI」と「Legacy」を選択できる。
UEFI-xxxx(USBスティック名)からだと、f9を推さなかった時と同じ流れで起動。
Legacy-xxxx(USBスティック名)を選択したら、grubの起動選択画面が表示される。enterで起動。UEFIで起動したときと表示のされ方が違う。

こんな感じで、TinyCorePure64は起動するんだけど、「CorePure64-14.0」は起動できない。
違いは「EFI」ディレクトリの有無。
このディレクトリの奥にはefiboot.imgやgrub.cfgがある。CorePure64には、これがない。
どうやら、新しい機械で起動するには、EFIに対応している必要があるようだ。

こうして起動した「TinyCorePure64-14.0」だけど、「読み出し専用」でブートされるので実質的には使えない。ソフトのインストールや設定が出来ない。
理由は分からないのだけど、これらのイメージは元々CD-R用らしく、使えるようにするには「インストール」する作業が必要なのだろう。

インストール用イメージである「CorePlus」はどうか。
電源ボタンを押すだけでは起動できない。
BIOSから起動する必要がある。
f9キーを押してBoot Menuを表示。
UEFIからは起動しない。「TinyCorePure64-14.0」とは挙動が違う。
Legacyを選択すると、TinyCorePure64と同じ流れで起動できる。違うのは、どのようなOS、window managerを使うかとか、CLI(最近はCUIって言わないのかな)で起動するか、などを選択して起動させることが出来ることだ。

ProBook 450 G3ではどうか。
これは以前から普段使い用になっている古めのノートPC。

TinyCorePure64、CorePlusは起動できる。 BIOSからのBoot Menu。
UEFI-xxxx(USBスティック名)を選ぶと起動しない。
Legacy-xxxx(USBスティック名)を選ぶと起動できる。OS起動の選択画面表示、選択、enterで起動。 CorePure64は、起動しない。

さて、新型のProBook 450 G9ではどうか。「TinyCorePure64-14.0」の起動を試みる。

PC起動、escキー、f10キーからBIOS設定画面に移行。
Advanced画面を開く。Boot Optionから、起動優先順位でUSBを上げる。
Secure Bootの設定はここにはない。
Security画面を開く。
ここにSecure Boot Configurationがある。クリックで設定画面に移行。「Secure boot」のチェックを外す。
Main画面、「Save Changes and Exit」。
再起動。
f9キーで起動を選択。
legacy UEFIという選択肢は、ない。
UEFIから起動したら、grub起動画面が表示される。430 G5のときと同じような画面だ。
enterキー。
画面が真っ暗なままになる。
家庭内LANを確認したらIPアドレスは振られていてpingは通る。だけどこれでは手も足も出ない。ブラックボックスみたいなものでOSが起動しているのかどうかも分からない。

(5月9日追記。真っ黒な画面のまま「sudo poweroff」を打ったらPCがシャットダウンした。OSは動いている。)

他に手は無いか。
Security画面から、TPM Embedded Securityの設定画面に。
TPM Deviceを「hidden」に。これで起動してみたら、「Tpm Ppi」という画面が表示される。
TPMが切れるけどいいか?AcceptならF1だと。F1キーを押す。
再起動。
grub起動画面表示、enterキー、画面真っ暗。同じである。
関係ないのなら、危なっかしいのでTPMの設定は戻しておく。

他にも、grub起動画面から選択項目を変えてみたり、grubコンソールからの起動なども試みたが、同じ。
CorePlus、CorePure64は起動しない。f9から選択しても結局蹴られる。

試みにFedoraのインストール用イメージをUSBメモリに書き込んで起動を試みたところ、Secure boot有効でも起動する。流石、Fedora。
ままよ、なにはともあれ、起動できるTiny Coreをインストールできるか、やってみよう、、、

やってみたらなんとかなった。
前説、ここまで。

最新のTCを、最新のPCで動かす

まず、うちのオーディオシステムに使っているTiny CoreをOSインストーラーにする。
うちのPPAPシステムは、Tiny Core Pure64-11.1で作られている。
それらはimgファイルにバックアップしてあって、USBメモリに書き込めば利用できる。これに「tc-install.tcz」をインストールしたら、OSインストーラーとして使える。

インストールに使うハードはUEFI、Legacy、両方使える環境が必要。
ProBook 430 G5を選択。

mpdサーバーのimgファイルをUSBメモリに書き込んで、ProBook 430 G5で起動。
BIOSからLegacyを選択。
sshでLAN経由でログインし操作する。
tceコマンドで「tc-install.tcz」をインストール。

もう1本、USBメモリを用意してFATでフォーマット。なぜFATかというと、grub2をインストールするから。
これを430 G5に刺して、fdisk -lでデバイスを確認。
コマンド「sudo tc-install.sh」を打ち、このUSBメモリにTCをインストールする。ネットインストールを選択したら、最新のTiny Core Pure64-14をインストールできる。
以下、経過。

tc@box:~$ sudo tc-install.sh
>

Core Installation.
Install from [R]unning OS, from booted [C]drom, from [I]so file, or from [N]et. (r/c/i/n): n
>
The latest version is 14.0
Enter architecture (32)bit, (64)bit or (q)uit: 64
>

Select install type for /tmp/net_source/corepure64.gz

Frugal
* Use for frugal hard drive installations.
Note: You will be prompted for disk/partion and formatting options.

HDD
* Use for pendrives. Your BIOS must support USB-HDD booting.
* A single FAT partition will be made.
Note: Requires dosfstools extension.
Warning: This is a whole drive installation!

Zip
* Use for pendrives. Drive will be formatted into two FAT partitions.
* One small one for USB_ZIP boot compatibility, and used to hold Tiny Core.
* The remaining partition will be used for backup & extensions.
Note: Requires dosfstools and perl extensions.
Warning: This is a whole drive installation!

Select Install type [F]rugal, [H]DD, [Z]ip. (f/h/z): h
>

Select disk for corepure64
	 1. sda
	 2. sdb	On a removable device.
	 3. sdc	On a removable device.
Enter selection ( 1 - 3 ) or (q)uit: 3
>
Install Extensions from this TCE/CDE Directory:
>

Select Formatting Option for sdc1
	 1. ext2
	 2. ext3
	 3. ext4
	 4. vfat
Enter selection ( 1 - 4 ) or (q)uit: 4
>

Enter space separated boot options: 
Example: vga=normal syslog showapps waitusb=5 

vga=normal syslog showapps waitusb=5 
>

Last chance to exit before destroying all data on sdc1
Continue (y/..)? y
>

Writing zero's to beginning of /dev/sdc
Partitioning /dev/sdc
Formatting /dev/sdc1
mkfs.fat 3.0.26 (2014-03-07)
1+0 records in
1+0 records out
440 bytes (440B) copied, 0.005070 seconds, 84.8KB/s
UUID="E84A-CD33"
Setting up corepure64 image on /mnt/sdc1
Applying syslinux.
Installation has completed
Press Enter key to continue.
tc@box:~$ 

さて、最新の64-14をインストールしたUSBメモリが出来たら、ここから起動。
まだUEFIからは起動できない。
Legacyを選んで起動する。
パスワードを設定。 tceからopensshをインストール、設定、起動。 filetool.sh -bで保存。

LAN経由でログインし操作できるようにするのは、本体のキーボードが日本語キーボードとして使えないので不便だからだ。たぶんUSキーボードの設定になっている。「*」を打つのに「shiftと8」、「_」を打つのに「shiftと-」を打たないといけない。
ssh経由で操作したら、使い慣れた日本語キーボードを使うことが出来る。

これにtceで「tc-install.tcz」をインストール(後々、インストーラーとしても使えるようにするため)。
更に「grub2-multi.tcz」をインストール。grub-2.06がインストールされる(因みに64-11だったらリポジトリが異なるのでgrub-2.04だ)。

これだけでは、grub2は機能しない。
ブートローダーインストールのコマンドを打つ。
下記コマンドは、tceで表示されるgrub2-multi.tczの説明の中に表示された記述例に少し手を入れたもの。

tc@box:~$ sudo grub-install --target=x86_64-efi --boot-directory=/mnt/sdb1/EFI/BOOT --efi-directory=/mnt/sdb1 --removable

Installing for x86_64-efi platform.
grub-install: warning: cannot open directory `/usr/local/share/locale': No such file or directory.
Installation finished. No error reported.
tc@box:~$ 

警告出て大丈夫かと思ったが、警告だけでNo errorだからいいらしい。
再起動、UEFIから起動したら、grub2操作画面が表示された。grub2が表示されるということは、前進じゃん?
しかしbootを打っても起動しない。
何かエラーの表示の後で「booting in blind mode」と表示されて文鎮化する。

一般的には「grub.cfg」ファイルは、ユーザーがみだりに編集してはいけないということになっている。
しかしTiny Core Linuxは違う。フォーラムに書き込まれた内容によると、どうやらユーザーが編集して作ることになっているようだ。流石Tiny Core。

grub.cfgがないので、作る。
まずは、TinyCorePure64から流用し、あちこちネット上の情報を集め書き換え、下記の通り。
置き場は「EFI/BOOT/grub」でいいのだろう、と。 Legacy BIOSから起動して書き込む。「filetool.sh -b」を打たなくても保存される。

vi /mnt/sdb1/EFI/BOOT/grub/grub.cfg

# Load Graphical modules
insmod efi_gop

set gfxmode=auto
set gfxpayload=keep
set gfxterm_font=unicode
terminal_output gfxterm

linux /boot/vmlinuz64 loglevel=3 vga=791
initrd /boot/corepure64.gz

これで、UEFIから起動したgrub2操作画面から「boot」を打つとOSが起動するようになった。
insmod の設定がないと、blind mode になるらしい。

ところが、Legacyで起動し動かしていた間にインストールしたopensshが起動していない。パスワードも失くしているようだ。
どうも、UEFIから起動するかLegacy BIOSから起動するかで、挙動が変わるらしい。
/opt/.filetool.lstも見当たらない。どこに行ったのか。というか、何で無くなってるのだろう。

仕方ない。
UEFIから起動したところから、環境を1から作り直してみる。どうなるんだろう、、、
残念。
何故か解らないが、構築した環境を保存できない。
これでは使えない。どうなってるんだろうかな、、、

ここからフォーラム等々調べて、grub.cfgの記載は下記の通りになった。

loadfont unicode

insmod all_video

terminal_output gfxterm

linux /boot/vmlinuz64 loglevel=3 waitusb=5 vga=791
initrd /boot/corepure64.gz

boot

waitusb=5 が無かったら、OS起動時にUSBメモリから読み込まないものが出るらしい。あるべきものが無いままにOS起動するので、パスワードを紛失したりtceでインストールが出来なくなったりするらしい。
記載追加することで、Legacyで起動したときと同じように問題なく動くようになった。

最下行に「boot」を追加。
これで、grub2操作画面にならずにOSが起動するようになった。
sshからrebootを打てば再起動してそのままsshで再ログインできる。棚の下に押し込んだままで再起動をかけることが出来るということだ。利便性は大きく向上する。

ProBook 450 G9でも動くかな、、、動きました!ミッションクリア!

しかし今回、なんとかなったけど、UEFIから起動するしかない、最新の機械しかない環境で、TCを動かそうとしたらどうしたらいいのだろうか。何か方法はあるんだと思うけど、未確認。

Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.