起動時にWindowsToGoドライブを認識しない
玄人志向などが扱っているUSBハブにSSDが内蔵できるタイプの外付けSSDケースをWindowsToGo用に使う場合、起動時にドライブを認識せずシェルが立ち上がってしまう場合がある。一度電源を切っても回復せずBIOSの初期化をしたりなんだりとめんどくさいことをしないと認識してくれない場合、ドライバの読み込みとUSBハブの認識のタイミングがずれていることが考えられる。USBが初期化され接続機器を探しに行っているときにまだドライバが組み込まれていないという感じ。
解決策
①外付けケースを接続せずに起動する
②シェルが立ち上がったら接続する
③この段階でドライバが組み込まれているのでハブが認識され、その先のドライブも認識される
④exitでシェルから抜ける
⑤ドライブが認識されているのでWindowsToGoが起動する
こういう手順で解決できる。便利だけど少し癖がある>USBハブ機能付き外付けケース
未来の技術シリーズ③ Thorium Browser ~地球上で最速のブラウザ
最近、チょッとだけ記事になったので見たこともある人もいると思うが、Thoriumブラウザが今一番熱い。
thorium.rocks
まず作者のAlex313031について触れておこう。ChromiumOS系統を昔から使っていたユーザーならCOGというテレメトリー拡張機能を使ったことが一度はあるはずだ。このCOGの作者がAlex313031である。
その動作についてブラックボックスだったChromiumOSで初めてCPU使用率やメモリ使用量などを「見せて」くれたのがCOGである。現在はもう拡張機能として公式には提供されていない。
このCOGの作者であるAlex313031が満を持して世にはなったのが、Thoriumである。ソリウムじゃなくてトリウム。原子番号90番。
このThoriumブラウザは基本的にはChromiumブラウザのフォークであるが、他社製品とは大きな違いがある。Thoriumブラウザはその動作にCPUの拡張命令を扱うことができるのだ。
ja.wikipedia.org
拡張命令とはなっぞやという話だが、かいつまんで説明すると、この命令セットを使うと「同じCPUパワー」で「同じこと」をさせても演算処理が高速化できるということだ。つまりアプリケーションの動作が高速化できる。では、なぜ他のブラウザは拡張命令セットをサポートしないのか(できないのか)
それは商業上の理由により、CPUごとにサポートしている拡張命令の種類が異なるのに対して、アプリ側でそれを区別して対応するということが困難だからだ。たとえばSSE3までしかサポートしていないCPUにAVX命令を投げても処理することができない(動作しない) 仮に相手のCPUがサポートする拡張命令が事前にわかってもアプリがCPUごとに異なる命令を投げることができない(様々な事情により)
このため既存のブラウザはこの拡張命令セットに対応していない。素のコードをシンプルに丸投げしている。CPUは力業でクソ重い演算(特にJavascript関係)を実行しているのだ。そりゃ非力な石がブラウザを立ち上げるのに何十秒もかかるわけだ。
これを「人力」で解決したのが、Thoriumブラウザである。その解決策とは
CPUがサポートしている拡張命令別に4種類のバージョンを用意して「自分で調べて自分で選んでインストールする」のだ。のだ。簡単に言うけどこんな解決策ありか。
間違った命令セットのバージョンを選ぶと動作しない。公式ではサポートしていないはずの拡張命令セットが実は動作するorサポートしてるはずなのに動作しない 阿鼻叫喚w
一番まずいのは、Linux版で間違ってリポジトリを登録すると100発100中で「間違ったバージョン」でアップデートされること。立ち上がらなくなるからリポジトリの登録だけは絶対にやってはいけない。
どのくらい高速化しているのかは公式サイトの文言を信じるしかないが、Youtubeで再生できる動画の画質がたとえばFirefoxESRよりも数段高画質なものを選べる感じがする(動画再生支援しない前提で) 非力なPCでもストレスにならない程度の速度でサムネイルが表示される(サクサクというわけにはいかない。非力なCPUはそもそもどう頑張っても規格の上限で通信などできない。こちらがボトルネックになる)のは心理的にも大変よろしい。
また、ダウンロードしたアプリのサイズが極めて小さく、ダウンロードも、他の環境からのコピーも容易という利点もある。
欠点:拡張命令別バージョンの名前が同じ。何の区別もない。パッケージ名で区別をつけているのに中身では区別できない。同じバージョンという扱いになる。リポジトリ登録すると間違ったアップデート食らうのもこれが原因。なんとかならんのか。
このblogもThoriumブラウザ上で書いている。何の不自由もないし、むしろ軽快高速で楽しい。最新のCPUであればAVX2対応バージョンを選んでおけば問題ない。tiny11系のWindows11にはEdgeが入っていないので、多くはChromeかFirefoxを選択すると思うが、インストーラ不要でワンクリックで入ってしまうこのThoriumが一番扱いやすくつかいやすい。環境設定で日本語を選べ日本語表示もばっちりだ。
インストール方法:それぞれのOSに自分のCPUに適したバージョンをダウンロード。クリックしてインストール。Windowsは黙ってそのままインストールされる。Linuxはパッケージインストーラが立ち上がってインストールされる。インストールに成功するとWindowsでは勝手にブラウザが立ち上がる。Lunuxではインストール終了後に手動で立ち上げる必要がある。ここから先が重要
Windows。。。自動でブラウザが立ちあがらなければ失敗。拡張命令のグレードの低いバージョンをインストールしなおすべし。
Linux。。。立ち上がる雰囲気だけでそのまま起動に失敗すると失敗(何分待っても同じ)拡張命令のグレードの低いバージョンをインストールしなおすべし。
手間がかかる。何のためにこんな難行苦行をしているのかわからなくなることもあるが、起動すれば快適なインターネット生活が待っている。
みんなThoriumで幸せになろう!未来がここに来た!
未来の技術シリーズ② tiny11とその周辺
(このblogもMicro版で書いています)
日本では実現不可能なWindows11の改変パッケージ、tiny11がいよいよ24H2になったことでちょっと話題を呼んだ。フェアユースの概念が法にあるアメリカでは他人の知財であっても非商用範囲内で自由に利用、改変できるためこのような個人が作ったWindowsが存在する(日本では法で禁止されている)
今回紹介するのはWinndows X-Lite。Optimum版とMicro版が存在する。
windowsxlite.com
Optimum版は不要なサービスをそぎ落として高速軽量化したバージョンで見た目も含めて、個人の軽量化の「やりすぎ」程度にとどまっている。操作、設定ににも違和感はなく、巣のWindows11の高速軽快さを楽しむことができる。メモリは特に節約されている雰囲気もなく、起動時で2GB、ブラウザを立ち上げたりしているうちに自然に4GB近く使っている感じで、一般の環境で高速化されたWindowsプラットフォームを利用できるる。
windowsxlite.com
ところがULTRALIGHTと表記されるMicro版になるとものすごい軽量化を目の当たりにできる。起動時の占有メモリ、1GB!
1GB
たった1GBでWindowsが立ち上がる! ブラウザを立ち上げても1.7GBくらいで踏みとどまるから、メモリ2GBのしょぼいマシンに入れてもスワップが起きない=速度低下しない!!!!!
おまえはどこのLinuxだ! これは真面目にすごい!
ポイント:英語版なので日本語言語パックと基本入力を入れてやらないといけない。言語パックは普通に入るが、基本入力は従量課金をオフにしてやらないと入れることができないので(デフォでオン)ひと手間かかる。基本入力まで入れないとフォントが汚くて実用に耐えないので必ず入れること。ただしなぜかIMEの変換候補が豆腐のまま。これは何か別の言語パックを入れたほうがいいのだろうか。
ポイント:何も入っていない。何か入れたければ、HPの説明を読んで手動で入れる必要がある。ドライバ類は初手でWindowsUpdateを殺しているので必ず手で入れること。WindowsFireWallはメニューにないが、検索で「WindowsFireWall」と入力してやるとオンオフを自由に切り替えることができる(不思議な仕様
AntimalwareもWindowsupdateもsysmainもいない世界。自由で軽快で軽量な世界がやってきた。
未来は今ここにある。
追記:WindowsToGoとの相性が抜群。rufusを用いたWindowsToGoは本家Windows11ではその大きさゆえかUSBメモリでは途中でげろを吐いて失敗してしまうが(SSD専用)、tiny11系のWindowsはサイズが小さいため容易にUSBメモリにインストールできる。作成の終わりで「ブートファイルの更新に失敗しました」とエラーメッセージを吐いて終了するが成功しているのでご心配なく。
起動直後に「スワップファイルの設定に失敗しました」と出るが、バグまたはUSBでの運用を想定していないためと思われる。動くので気にしない。
USBメモリ1個で気軽に持ち運べるWindows実行環境が手に入った。こんな便利なOSはtiny11かPuppuLinuxだけ!おすすめ!
未来の技術シリーズ iVentoy補足
windows環境でiVentoyを稼働させるのは、ライブラリの追加だけでは足りない。
①WindowsFireWallの設定
セキュリティーからファイヤウォールの設定画面に入り、通信を許可するアプリにiVentoyを加えて「すべての通信を許可」に設定する。これをしないとクライアント側と通信が確立しない。
が、これだけだとブートの途中で失敗してしまう。どこかのポートが閉じたままらしいのだが、WindowsFireWallで「個別のアプリで特定のポートを開ける」設定が見つからない。セキュリティのポリシーを設定する画面でもポートを直接設定することができない。不要なポートは開ける必要がないので任意のポートだけ開けたいのだが、ちょっとわからなかった。
解決策:WindowsFireWallを切った(爆死
まぁ、結構な数のLinuxのでぃすとろだって入れた瞬間はFireWallがOFFになったまんまだし(あれも怖いw)、宅内環境だけなら問題ないんじゃね? たぶん。Linuxでは気が付かなかったトラブルなので、ちゅっとこれあれだなぁ。
②外部との通信の確立
ライブ起動したOSでまず確認するのはtopでリソース使用率、neofetchで正しく構成が認識されているか、この2点だろう。ここが問題なければ次はブラウザを立ち上げて外部と通信できているか確認する。
有線接続しているから、外部とも通信できると思う。ところがぎっちょん(古い) 結構な割合で外部と通信できていない。想像だがiVentoyのDHCPが振ったIPをルータが知らんぷりするっぽい。
「お前誰?接続要求してきてるけどお前なぞ知らん」という態度で外部との通信をさせてくれないのである。
困ったことに素直に通信できているケースもある。ハード依存なのか、OS依存なのか、ちょっと切り分けできない。
解決策:別のルートでルータと通信する
通信が確立していないから通信できていないわけなので、素直に通信を確立させてやる。一番簡単なのは無線LANで手近なアクセスポイントにログインして、ルータから改めてIPを振ってもらってこれで通信する方法である。もう一つは、最近の気の利いたPCは(国産でなければ)LANポートを2つ以上持っているので、もう一本スイッチングハブにつないでやって、ここにルータからIPを振ってもらってこれで通信する方法。この方法は起動前につないでおくと両方iVentoyからIPを振られかねないので、起動してからつなぐとよい。LANポートって最低2つないと困るよね。なぜかディスプレイポートは複数あってもLANは一つというPCが多くて「みんなこれすぐに困ると思うけど、どうしてるんだろうか」といつも思ってしまう。誤過程にUSB接続のLANアダプタばかり増えていく。国産のPCは決裁権を握っている人たちが不通にPCを日常的に全く使っていないっぽいので(使うような奴は出世できない)あと30年たってもLANの口は1個だけだろう。しかも1Gの遅いやつ。ルーター見てると溜息出るでしょ?ルーターがボトルネックになってどうするんだろう。。。
おまけ:iVentoyに限らず、PXEブートの最大の欠点はクライアント側に有線LAN端子がないとPXEブートそのものができないことにある。USB接続のLANアダプタがあっても起動時に認識してくれないので通信ができない。一部の薄型ノートに有線LAN端子がないタイプのマシンを見かけるが、これは残念ながらPXEブートすることができない機械である。
で、最近になって「これはまずかろう」ということにメーカーも気がついたらしく(遅いわ)、対策としてBIOSレベルで無線LANアダプタを有効にしてあらかじめアクセスポイントとの通信を確立させてからブート→PXEブートという手順を踏める機種が登場している。HPとLenovoのマシンにこの機能が実装されているが、できるLANカードに制限がある(PXEブートは機器固有の機能であるため)
このPXEブート可能なLANカードにIntel® Wi-Fi 6 AX201があるのだが、HPは「できる」と言っているのに、Lenovoは「できない」「intel側の制限による」と言っている。ほかのIntelの石に対してPXEブートできなかった場合は「有線接続でPXEブートせよ」「無線でのPXEブートをもう一回やり直せ」とかなり投げやりな解決策を示しており、Lenovoに供給されているインテルのwi-fiチップには何か細工がされている予感がする。
米中貿易摩擦。安全保障問題。
未来の技術シリーズ①~iVentoy "A new netboot solution"

驚異のマルチブートシステム「Ventoy」についてはこのblogで過去さんざん絶賛してきた。
bluetone2016.hatenablog.com
PCを多数持ち、それが日々増え、ここに最適なOSをテストしながらインストールする作業には絶対必要なアプリである。が、ほぼ無名なまま今日に至る。ほとんどの人にとってOSはプリインストールされているか、または一度インストールすればそれでおしまいだからだ。blog主のように毎月必ずWindows11をクリーンインストールし、あるいは誤過程に週に3台程度新しいPCがやってくるような人間はあまり多くないのだろう。
話は変わるが、blog主のようなタイプの人間が毎日の暮らしでほぼ確実に目にする起動時の画面、それはPXEブート画面だ。

PXEブートはディスクレスでクライアントPCを起動するような場合必ずお世話になるブート手段で、何か目新しいものではない。blog主のようにシンクライアント端末好きからすると垂涎の的とも言えるブート手段である。秋葉原のジャンクに転がっている謎のストレージなし端末はこのPXEブートが前提となっているといっても間違いない。
PXEブートが一般の誤過程であまりなじみがない理由は、DHCPサーバーやファイルサーバーと違って一般の家電販売店にはPXEサーバーが売っていないことに尽きる。全2者はそれぞれルーターという名前、あるいはNASという名前で堂々とヤマダ電機で売られている。ほぼ全家庭でこれらのサーバーは日々稼働しているのだ。だがPXEサービスが自動で走る端末はヤマダ電機では売っていない。
そこで、せっかくどんなPCにもPXEブートの手段が提供されているのだから、自前でPXEサービスを立ち上げたいと思うのが人情である。だがしかし、そういうわけにはいかない。検索して引っかかる記事の大部分はほぼ役に立たないからだ。それらの記事にはほぼすべて「なぜ」の部分が欠落しており、たとえば立ち上げ過程でDHCPサーバを-立ち上げなければならないと書いてあるのだが、ほとんどの環境でDHCPサーバーは稼働しておりIPの競合が予想される。また既存のDHCPサーバーが振るアドレスを利用できないのはなぜか、などの単純な解決策が書かれている記事は、調べたかぎり1本はあったが、ほぼ0。これ解決しないと稼働しないことが予想されるから、記事を書いている人は「誰かに解決してもらっている」環境で無邪気にサービス環境を立ち上げてるんだろうねこれ。記事を読むと何となくそういうことが透けてくる。
ところが、そういっためんどくさい手順をすっ飛ばして、一気に宅内にPXEブート環境を構築するのがこのiVentoyだ!
www.iventoy.com
ventoyのPXEブート版。USBメモリーから起動していたventoyをネットワーク経由で外部サーバーから起動させるというもの。

windows版とlinux版の二種類があり、さらにwindows版は32bit版あり。
インストール不要のため導入は極めて簡単で、基本的には下記手順通りに進めていけば何の問題もなく稼働する。
https://www.iventoy.com/en/doc_start.html
ここに書かれていないポイント:
windows版はMicrosoft Visual C++で書かれているため、先にランタイムライブラリのインストールが必要。Linux版は不要。
learn.microsoft.com
windows版が起動しない場合、ブートさせたいisoファイルに破損や相性などの問題がある場合がある。すべてのisoファイルに対応できるほど完成度が高くないので、その場合は一度isoファイルを削除してからやり直す。
antiXとMXlinuxは例外的なクライアントPCを除いて起動に失敗する。未対応と考えたほうが良い(カーネルパニックを起こして停止するため、停止タイミングにもよるが最悪PCのBIOSまたはUEFIを破壊してPCそのものがおしゃかになる)
PC側はできるだけUEFI起動のほうが良い。レガシーブートもできるが、現行のPXEはUEFIの一部として稼働するため。テスト機のFLORAはUEFIブートができなかったためレガシー起動を行った。ここら辺は各環境で適宜試してほしい。
PXEブートができない場合、UEFIでネットワークスタックを「有効」にし、そこから設定できるようになる「IPv4による起動」を許可する。この項目、見たことはあるけど意味が分からなかった人も多いと思うが、UEFI設定画面での「ネットワークスタック」とは外部ネットワーク環境(IPv4とかIPv6とか)のことを指しており、起動時にこの環境を利用できるようにするかどうかの設定である。PCにそういう名前の特別な機能があるという話ではない。ここかなり表現が不親切だとは思う。
余談:
某知恵袋とか価格とか上から目線で何も知らん奴が適当なことを書いていて驚いた。質問者は「ネットワークスタックを有効にする必要があるか」と聞いてるんだから、ネットワークブートするなら必要、なければ不要、という答えしかないと思うのだがそういう単純または具体的な回答は100近く見たが
「一件もなかった」
某知恵袋や価格に書いてある回答のすべてが「にわかによるでたらめ」という世界だった。近づかないほうが良い。
これとは別に起動にネットワークを利用するかどうかの設定があるUEFIもあるのでこれも有効にしておく。これをしないとPXEブート画面は出るが実際にはブートしないという状況になる。
すでにSSDに別OSをインストールしている場合、PXEブートに失敗してSSD内のOSから起動されて嫌な思いをすることも多いが、これは各々のUEFIごとに設定を変えてやる必要がある。
あとどうしても立ち上がらない場合、UEFIをデフォルト設定に戻してほしい。たいていはここで引っかかっている。
気が付く範囲ではこんなところ。初回起動時に緑のボタンを押してサービスを開始してやらなければならないことだけ忘れずに。
テスト環境ではLMDE6シナモンは各クライアントPC上で100発100中で起動した。相性が良いものと思える。
テスト環境
サーバー側 windows11(中華N100PC)とantiX23.1(日立FLORA Se210 RK4)
クライアント側 たくさん
日々SSDの高速化とOSの起動時間の短縮という課題に取り組んでいると(趣味でね)、ネットワーク経由の起動なんて遅すぎて使い物ににならないと先入観で否定してしまいがちだが、iVentoyによるisoメディアの遠隔起動はローカルのUSBと遜色ないどころか、実際には軽量高速である場合すらある。NASの普及でローカルの巨大なストレージが消えて行って久しいが、いよいよ本格的なディスクレスPCの世界がやってきた。
諸君、今が未来だ!
感想:
ローカルのUSBから起動したときよりクライアントPCが軽い。。。USBそのものの負荷がOSの動作に与える影響って低スペックPCでは無視できないことを改めて実感した。。。
Chrome OSに搭載されているChromeは高速化できない
WindowsやLinux上で走るChrome系のブラウザはJavaを切ったり、適切なGPUを使うことで軽量、高速化出来ることはここまで書いてきた通り。もちろん、石やOSによって効果は様々だが(ubuntu系は効果が薄い気がする)、全く意味をなさない OSがあることに気がついた。
Chrome OSだ。Chromeブラウザのflags をいじって再起動させるとOSごと再起動することから気がついたのだけど、どうも、こいつはブラウザだけ軽量化することができないらしい。
OS全体が重いのに、脆弱性の緩和策も解除できないし、なんだか何を設定しても変わらないどころか不安定になっていくばかりだしで、これについては高速化は無理という結論になった。いじれないところが多すぎる。
Chromeブックについては、最初から石の強いブツを選ばないとあとで後悔する、そう言うことなのかもしれない。
Chrome系のブラウザでGPUを全開で使う方法
非力なPCでは動画デコード以外にはGPUを使わないほうがむしろ良いと以前書いた コレ自体は間違っていないと思うが、一方である世代以上の内蔵GPUであれば利用できるなら利用できたほうが目に見えて動画の再生が楽になる方向性もある。
Firefoxは驚いたことに129あたりできちんと動画再生支援機能が生きており、h246ifyと併用してそのGPU に実装されているデコード機能はきちんと活用できるようになっている。問題なのはChrome系だ。こいつはきちんと動画再生支援してくれないケースのほうが多い。
手順
①アドレスバーにchrom://gpuと入力し、現在のGPUの状況を把握する
例
Graphics Feature Status
=======================
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Enabled
Direct Rendering Display Compositor: Disabled
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated on all pages
Raw Draw: Disabled
Skia Graphite: Disabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
Vulkan: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
WebGPU: Hardware accelerated
WebNN: Enabled
こんなふうに表示される(これは設定完了後のもの)
このうちRaw Draw以外の項目でDisabledとなっていたり、Softwareとなっている項目はないかを探し、該当項目の有効化を行う
②アドレスバーにChrome://flagsと打ち込み、検索フィールドに該当項目(たとえばWebGPU)と入力して、該当項目の設定画面を呼びこれを有効化する。有効化したらgpuの該当項目が有効化されているかを確認する。いくつかの項目はなにをやっても有効化できない(たとえばSkia Graphite) これは無視する
③ドライバーのバグ回避策を無効化する
起動時のオプションとして--disable-gpu-driver-bug-workarounds --use-gl=angle --use-angle=glを追加(画面がピンク入になる場合は--use-gl=angle --use-angle=glを削除。最悪動画が再生されなくなる)
ここまで行うと、ブラウザは描画や動画再生のためにGPUをフルに活用することができるようになる。もちろん非力なCPUの場合、GPUのポテンシャルを全開にすることはできないが、それでもかなり描画速度などが改善できる。
この対策、問題もある。ハードウェアアクセラレーションを有効にすることで描画がおかしくなったり、縞ノイズが乗ったりするケースがあるからだ。このときは一回すべてリセットして、GPUに関わるどの項目をdisableに設定すれば改善するか確認していく必要がある。それがめんどくさい場合は、ハードウエアアクセラレータを切ってしまうのがむしろオススメ
追記 本当に非力なCPUの場合、Firefoxは起動だけで死ぬほど時間がかかり動画再生もできない。JAVAをどう切ればいいのかの技術情報もないので使わないのが吉。Chrome系なら初代atomでもそこまで重くない(もちろん極限までJAVAは切ること)