私自身のオペレーティングシステムを作りたいので、Archisoを使って配布用のイメージを作りました。本当に素敵ですね!
ディストリビューションのインストールを自動化するのに役立つPythonファイルを作成しました。
ファイルをchrootに転送した後にGRUBをインストールする部分もあります。動作しますが、再起動してインストールされたシステムに「Arch Linux」と表示されます。
Pythonで作成したインストールファイルで、次の行を使用してos.system("COMMAND LINUX")
Linuxコマンドを実行します。
Arch Linuxの名前を展開名に変更するには、コマンドまたはファイルを変更する必要がありますか? GRUBをインストールしたら、インストール自動化ファイルに入れて再起動し、「マイオペレーティングシステム」がすでに表示されるようにします。
PS:/boot/grub/grub.cfgのメニュー項目を変更するように言わないでください。メニュー項目は自動的に上書きされるためです。
答え1
/boot/grub/grub.cfg
どのように生成されるのかご存知ですか?
ファイルを生成する/etc/grub.d/
ために実行されるスクリプトのセットがあります。通常、指定されたスクリプトは現在のディストリビューションの実際の起動メニュー項目を生成するのに役立ちます。複数のオペレーティングシステムがインストールされている場合は、他のオペレーティングシステムのメニュー項目を生成するスクリプトです。grub2-mkconfig
grub.cfg
10_linux
30_os-prober
少なくとも Debian では、10_linux
ディストリビューション名はディストリビューションの変数セットから取得されます。ただし、そこでもコマンドを使用して値を間接的に設定します。GRUB_DISTRIBUTOR
/etc/default/grub
lsb_release -i -s
したがってGRUB_DISTRIBUTOR
、変数の設定方法を変更するだけで、/etc/default/grub
GRUBに表示される展開名をすばやく変更できます。
しかし、実際のコマンドを確認したいかもしれません/usr/bin/lsb_release
(Archにもコマンドがあるとします)。これはPythonスクリプトであることがわかりました。このスクリプトが展開名を取得する方法を変更して「My OS」という結果を出力すると、GRUBに表示される名前は自動的に変更されますが、コマンドはlsb_release
さまざまな場所で使用できるため、スクリプトを変更すると次のことができます。 GRUBメニューだけでなく、さまざまな場所から「My OS」の名前を取得します。
ただし、パッケージ管理システムがこのコマンドで提供する情報も使用している場合は、オペレーティングシステムのlsb_release
名前を変更すると、カスタムディストリビューションでArchパッケージを使用するのが難しくなる可能性があります。ディストリビューションが「Archの事前カスタマイズバージョン」になりたい場合は、おそらくそうしません。