May 14, 2023
TinyCorePure64で、UEFI対応のPCで動くTiny Core 64をUSBメモリにインストールする
前説
今回は、いよいよオーディオからは縁遠いので、pcのカテゴリーに入れている。
(17日の時点で、読みにくいな、分かりにくいな、と思ったところを多少書き直した。内容は変わっていない。)
前回、うちで使っているTiny Core 64-11.1をインストーラーに転用して、UEFI対応のTC64-14をUSBメモリにインストールした。
しかし簡単にインストーラーに出来るTCを持っている人はそういない。
Tiny Core Linuxのサイトからダウンロードできるものと最小限の機材で、UEFI対応のTCを作るにはどうするのがいいのか、今回はそういうことを考えてみた。
つまり、TinyCorePure64-14.0とPC1つと有線LANのネット環境で、どうしたらいいかということだ。
下記urlからTinyCorePure64-14.0.isoをダウンロードできる。
http://tinycorelinux.net/14.x/x86_64/release/
USBメモリなりに焼いて、ブートする。
HP ProBook 450 G9だとgrubのブート画面が出るんだけど、そこでenterを押したらモニターが真っ暗になる。
ここで「sudo reboot」を打つとPCが再起動するので、OSは起動していることが分かる。
しかしこれでは使えない。
http://forum.tinycorelinux.net/index.php/topic,25015.msg159414.html#msg159414
TCのフォーラムに似たような事例が上がっている。
BIOSの設定で解決した事例のようだけど、うちのケースはどうも違うようだ。
ここではgrub画面から設定変更して起動させる方法も書かれている。これも、うちでは効果は無かった。
結局、今までのところ、450 G9でTinyCorePure64-14.0を起動したときに正常に表示させる方法は発見できていない。
ProBook 450 G3だったら、BIOSのBoot Menuから「Legacy」を選択すると普通に起動できる。
実は450 G3、普通に起動できた後、ちょっとした手数で比較的簡単にUEFI対応のTC64をUSBメモリにインストールできることが分かった。こうして作ったTC64-USBメモリは、450 G9で普通に正常にブートできる。
だから今回は、ProBook 450 G3で、450 G9でも使えるTC 64-14.0を作る方法の記録、ということになる。
以下に記載。
インストールに使うTinyCorePure64-14.0を450 G3で起動
先ず、「TinyCorePure64-14.0」のisoファイルをダウンロードしUSBメモリに書き込みPC(450 G3)に刺す。
下記からダウンロード。
http://tinycorelinux.net/14.x/x86_64/release/TinyCorePure64-14.0.iso
今回は、インターネットに有線LANでつながる環境が必要。
TCのサーバーからダウンロードするものがあるからだ。
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が再起動。
grubの起動画面が表示される。
(BIOSを設定済みであれば、f9キー、Boot Menuからだけで起動できる。)
今回、450 G3だからBIOS設定はこんな流れだが、当然他の機種なら違ってくる。

画像はスマホで撮った写真からトリミングしたもの。
ブートする方法が4つ選択できる。画像では「waitusb=5」を選択している。
そのほうがゆっくり慎重に起動するので無難、という感じ。
今回は、command line onlyではなく、GUIで操作するウィンドウマネージャを使う。
使えるPCが1台なので、sshで遠隔操作できない。
そうなると日本語キーボードを使えない。TinyCorePure64素のままでは設定できないのだ。USキーボードの設定のままで操作するので、キーボードを打つ操作は極力減らしたい。なしには出来ないが。
「enter」キーで、Tiny Core 起動。
ブート画面は以下。


上の画像は、OS起動後の画面キャプチャしたファイルなんだけど、実際の画像ファイルは、ブラウザ上の表示よりも縦尺が長い。
というか、実際のPCモニター上で、表示画面の縦を圧縮した表示になっているのだ。
だからスマホのカメラでとったBIOS画面と、OS起動後にデスクトップ(というのか?)をキャプチャした画像ファイルで、縦横の尺が違う。上下圧縮していない画像が、キャプチャ画像ファイルとして保存されるからだ。
今回、キャプチャ画像を、実際にPC上に表示された縦横比に近い感じで、ウェブブラウザ上で表示するように設定している。つまり、ブログ上ではキャプチャ画像ファイルの上下を縮めて表示している。
キャプチャ画像が大きすぎて読みにくいということもあったので。
インストールの準備 マウントツール、ターミナルを起動

まず、いくつかのソフトを起動。
上の画面、下の方、アイコンが7つ並んでいる。
右から2つ目、マウントツールをクリックしたら左上のカラフルな小さなウインドウが開く。これで、パーティションやドライブのマウント、アンマウントを管理できる。
OS起動の時点で、起動しているTCのディスク「sdb」が緑、マウントされていることが分かる。
sda1~3は、450 G3のHDDで、普段使っているOS(うちの場合Fedora。世間一般的なPCだったらWindowsが多いか)がインストールされている。
やろうと思えば、ここにTCをインストールできる。
もちろん、そんなことをしたら、HDDの内容はすっかり上書きされて消えてしまう。
つまり今回、ここは触ってはいけない領域、ということだ。
慎重を期すなら「fdisk -l」コマンドでドライブ構成を確認したほうがいいのだけど、今回は省略した。1~3があるのが普段使っているOSのドライブで、マウントされてるsdbで1しかないほうが現在起動しているTCだというのは分かるから。
画面の下、一番右の四角いアイコンで、ターミナルが起動する。上の長四角い灰色のウィンドウがそれだ。
ここからいろいろ操作する。
キャプチャ画面上、ターミナルに「tce」と入力している。入力後、enterキーで、ターミナル上でtceが動く。
tceは、Tiny Coreのソフトウェア管理・インストーラアプリだ。
インストールの準備 OSインストーラー(tc-install)と、grub2をインストール

キャプチャ画面、ターミナルウィンドウの表示。
tceが、スタンバイモード(とでもいえばいいのか)で起動されている。
Search、Provides、Keywords、Quit、と表示されているが、キーボードのキーを打つことで操作する。
Search の「s」を入力。

tce が検索モードになる。「tc-install」と打って、enter。

TCのリポジトリ上で、検索に引っかかったソフトが表示される。
(マウスの操作でターミナルのウィンドウを大きくしている。)
1. tc-install-GUI.tcz
2. tc-install.tcz
tc-installは、TC-OSのインストーラ。これがないとOSをインストールできない。
ちなみに「tcz」は、TCで使うソフトウェアを個々にパッケージ化したもの。tczの形でリポジトリに置かれているのをダウンロードするということだ。
今回使うのは「2」、ターミナル上で操作していく。「1」ならGUIで操作できるはずだが、今回は使ってない。意外と、ターミナル上で操作するのも簡単で不便ではない。
2 を入力し、enter。

tc-install.tcz の簡単な説明が表示される。
このソフト説明表示画面は、しばしば重要な内容が記載されていることがある。

ここで「q」を打つと説明表示からスタンバイモードに移行する。「i」キーで、先に検索表示したソフトのインストールが始まる。
インストール作業が進むに連れて文字列が上に上がっていく。
必要なアプリやライブラリのインストールが終わると、スタンバイモードに戻るんだけど、キャプチャはしていない。

tc-installのインストールは終了し、tceスタンバイモードから「s」で検索。
上のキャプチャ画面は、tceから「grub2」を検索し結果が表示された場面。
検索で引っかかるのは「grub2-multi.tcz」だけなので、ソフト選択画面は表示されず、すぐに説明画面が表示される。
この説明画面の文面は、あとで使う。詳しくは後述。

「q」キー、「i」キーで、grub2-multiをインストール。
関連するソフトも同時にいろいろダウンロード、インストールされる。
インストールが終わったら、「q」で、tce を終了。
これで、USBメモリにTC-14をインストールするために必要なアプリケーション2つを、TC-14にインストールした(ややこしい)。
ターミナル一番下の「clear」はターミナル画面を埋め尽くした文字をクリアし掃除するコマンドだ。
これでenterを押したら、画面がまっさらになる。
インストーラを起動、TC-OSをダウンロード

PCに、TCをインストールするUSBメモリスティックを刺す。
キャプチャ画面上、左上、マウントツールに、自動的に「sdc1」が追加される。
「sdc」がUSBメモリスティック、「sdc1」がUSBメモリスティック上のパーティションということだ。
ターミナルから、OSインストールのコマンド「sudo tc-instoll.sh」を打つ。

キャプチャ画面、ターミナル上、tc-instollが起動している。
インストールの設定開始。
Install from [R]unning OS, from booted [C]drom, from [I]so file, or from [N]et. (r/c/i/n): n
今回、ネット上のTiny CoreのサーバーからOSをダウンロードしインストールする。
ターミナル上、「n」を入力し、enter。
ネットインストールを選択したら最新のOSが自動的に選択されるらしい。
古いのを使いたければ、isoファイルをダウンロードして、USBメモリに書き込んだ上でPCに刺し「i」を選ぶんだけど、キーボードから手打ちでisoファイルの場所を指定しないといけないので手間がかかる。今回はしない。
Running OSという選択もある。
今回、インストールに使っているOSはTC64-14で最新なので、もしかしたらこっちの方が手軽だったかもしれない。
(実際やってみたら、全く手軽ではなかった。ネットインストールがずっと楽だ。)

ネットインストールで、OSを32bitか64bitか選択できる。今回は「64」で、enter。

ネットインストールなので、OSがダウンロードされる。
TC-OSインストール設定、インストール

ダウンロード終了したら、インストール方法を設定していく。
説明が英語で表示されている。Frugal、HDD、Zipの3通り。
Frugalが通常のインストールらしいが、説明を読むと、HDDがUSB接続のデバイスにインストールする場合で、今回はこれを選択。
ちょっと、まぎらわしい。
「h」、enter。

インストール先をどこにするか設定。
ここは要注意。
前述したが、本来インストールすべきではないところにインストールしたらすっかり上書きされて失くしてはいけないものが消えてしまう。
sdbとsdcは「On a removable device.」と表示されている。
間違えないように注意換気しているようだ。
今回は「sdc」にインストールするので、「3」、enter。
そうしたら、下記表示される。
Install Extensions from this TCE/CDE Directory:
追加インストールするものを、動かしているTCから移行できるらしい(触ってないので実は知らない)。
過去に使ってきた資産から使えるようにという配慮なのだろう。ただ、インストールするOSが異なるバージョンだった場合、tczのバージョンも違う可能性があるので、すんなり使えるとは限らないと思われる。
今回は何もないので、enterキーでいい。

フォーマットの選択。
今回はTCをインストールしたUSBメモリを起動ディスクにするので、あとから「grub2」をインストールする。
そのためにはフォーマットが「vfat」でなければならないようだ。
前に「HDD」を選択しているが、説明書きに「A single FAT partition will be made」と書かれてあった。だから、ここでvfat以外を選択したらどうなるのか分からない。
4. vfatなので、素直に「4」、enter。
Enter space separated boot options:
Example: vga=normal syslog showapps waitusb=5
これは、ブートローダーの設定らしい。
入れておいた方が無難かな、と思って僕はこのままコピペして設定している。
入力後、enter。
今回、GUIでTCを操作しているのは、マウスでこうした文面をコピペして入力できるのが便利だからだ。
繰り返しになるが、USキーボード設定なので、日本語キーボードでは使いにくい。
コピー&ペーストで済むのはかなり楽なのだ。
ただし、「ctrl + c」「ctrl + v」ではコピぺできない。マウスのホイールボタン、中央クリックでコピペする。これは個別の環境によって違うかもしれない。
Last chance to exit before destroying all data on sdc1
Continue (y/..)?
「y」、enter。
これでインストール開始。

キャプチャは、インストール終了した画面。
Press Enter key to continue.とあるので、enter。
UEFIに対応できるGrub ブートローダーをインストール

キャプチャ画面、ターミナルウィンドウが2つに増えている。
下のターミナルウィンドウで、tceを起動。

「grub2」を検索。
何をしようとしてるかというと、grub2の説明画面を表示しようとしている。
そこに記載された文面が必要なのだ。

表示を拒否された。
「can't open '/tmp/select.aus': Permission denied」とある。権限が無いということだ。
一旦、「q」を打ってtceを閉じて、「sudo chmod 777 /tmp/select.aus」と打ち込んで権限を変更してから、再度、tceを起動しgrub2を検索したら表示されるようになる。
ここらはキャプチャし忘れた。
どうも表示を拒否される場合とされない場合があるようで、理由がよくわからない。
拒否された場合は権限を変更したら対処できる。

下のターミナル画面、grub2-multiの説明が表示されている。
ここから、上のターミナル画面に、ブートローダーのインストールコマンドをコピペする。
前述したが、コピペはマウスの中央クリックで行う。
コピペしたコマンドはこれ。
sudo grub-install --target=x86_64-efi --boot-directory=/mnt/sdc1/EFI/BOOT --efi-directory=/mnt/sdc1 --removable
コマンドには「--target=x86_64-efi」と記述されている。
これは「UEFI」に対応するブートローダーをインストールする設定だ。
今回は、Legacy BIOSに対応しない、UEFIでしか動かない新しいPCで起動できるTCを作るのが目的なので、対応できるブートローダーをインストールする必要がある。
コマンドの文面には、インストール先が「/mnt/sdc1」と記載、設定されている。
今回、ブートローダーのインストール先はOSインストール先の「sdc1」なので、コマンドの文面を書き換える必要がない。当然、違うのであれば書き換える必要がある。
さて、enterキーでインストール開始する前に、sdc1をマウントする必要がある。
キャプチャ画面左上、マウントツールで「sdc1」をクリックし、緑に。
これでsdc1が「/mnt/sdc1」にマウントされ、インストールが可能になる。
これをしなかったら、インストールできないので注意。

enterキーで、インストール。
警告は表示されるが、「Installation finished. No error reported.」で、問題ない。
これでブートローダーがインストールできた。
しかしまだやることがある。
grub.cfg を設定
grub.cfg を設定しておかないと、ブートしてもうまくいかない。
新規OSインストールした「sdc1」にはgrub.cfgがないので作る。これも「sdb」のgrub.cfgから可能な限りコピペしていく。
一般的にはgrub.cfgはユーザーが弄るものではないようなんだけど、Tiny Coreの場合はユーザーが作る。

下のターミナルは、「sdb」側を表示。lessでgrub.cfgの内容を表示。
less /mnt/sdb/EFI/BOOT/grub/grub.cfg
上のターミナルは、「sdc1」側を表示し、ここでgrub.cfgをviエディタで作る。
vi /mnt/sdc1/EFI/BOOT/grub/grub.cfg

下から上に、コピペできるところはコピペして作る。
(viの使い方はここでは触れない。
と言いながら、書き忘れ。USキーボードなので「:」は「; + shift」で入力する。これで「:wq」が打てる筈。)
しかし実は、後で気付いたのだけど、vfatのフォーマットで作っているので、ふつうにUSBメモリをWindows PCとかにでも刺してファイル作成、編集が出来る。
viを使ってやるよりも、そっちのほうが楽な場合もあるかもしれない。
インストールに使ったTCをシャットダウン、インストールしたUSBメモリスティックから起動

これで一通り、作業終了。
上のキャプチャ画面下、一番左のアイコンをクリックするとPCをシャットダウンできる。

上の写真は新規インストールしたOSから起動したところ。
しかし、本当に出来るようにしたいのは、450 G9によるTC64インストールだ。
起動画面表示の方法は、今後、暇なときに探していきたい。
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.