Linuxの起動中にESPでファイルを上書きする方法

Linuxの起動中にESPでファイルを上書きする方法

私はWindows 7とLinux Mint 17 Cinnamonを実行する64ビットデュアルブートシステムを持っています。 rEFIndを使用して、起動するシステムをグラフィカルに選択します。

rEFIndに関するいくつかの情報:

  • EFI ブートローダです。
  • 外部テキストベースの構成ファイル(* .conf)を使用します。
  • 構成ファイルは他のファイルを参照できます。ただし、実行時には、refind.conf最初のファイル()によって参照される外部ファイルのみが尊重されます。
  • 特定の属性への複数の参照はカスケード処理されます。つまり、各参照は以前のすべての参照を上書きします。

... efiドライブにいくつかの設定ファイルが保存されています。 (efi)起動時に次の設定ファイルがロードされます。

  • refind.conf- デフォルトの定型句設定ファイル。このファイルは、次の2つのファイルを順番に参照します。
  • settings.conf- 私の好きな設定のためのきれいなシングルスレートです。これは Refind.conf で参照されます。ここのすべての設定は Refind.conf をオーバーライドします。
  • auto_settings.conf- プログラムで動的に処理できる設定が含まれています。また、引用されましたrefind.conf。ここにあるすべての設定は無視されますrefind.conf

これらのファイルに加えて、次のようにプログラム的に置き換えられる代替ファイルがありますauto_settings.conf

  • auto_default.conf- これにより、このファイルの内容が含まれるとauto_settings.confシステムがデフォルト状態になります。これにより、起動時にメニューが表示され、WindowsとLinuxの間で選択するように求められます。システムは私の入力を待ちます。
  • auto_mint.conf- このファイルの内容がrefind.confに含まれると、rEFIndはGUIメニューをスキップしてLinux Mintを直接実行します。
  • auto_win7.conf- rEFIndは、このファイルの内容がrefind.confに含まれている場合、GUIウィンドウとスタートウィンドウをスキップします。

これがこの問題を解決するためにrEFIndについて知る必要があるすべてです。

次に、システムは次のようになります。

システムを起動すると、どのオペレーティングシステムをロードするかを尋ねられます。私がウィンドウを選択すると仮定しましょう。

Windowsが起動します。

それではLinuxに入りたいです。

デスクトップを右クリックし、「Boot to Linux」をクリックできます。

レジストリを使用してデスクトップのコンテキストメニューにエントリを作成し、カスタムバッチファイルを実行しました。また、このレジストリキーは、実行時にその機能を表すために呼び出されたときにバッチファイルに特定のパラメータを渡します。

だから今この瞬間、私のバッチファイル(愛称でbootfacilitator.bat)は私の役割を見事に遂行しています。 EFIパーティションでは、マイバッチファイルの内容を置き換えますauto_default.confauto_mint.conf操作が成功すると、システムは再起動します。

その上によると始めるbootfacilitator透明とも呼ばれるウィンドウは、 の
内容を の内容に置き換えるために使用される機能でした。auto_settings.confauto_default.conf

システムがシャットダウンされ、rEFInd で起動します。これによりGUIがスキップされ、Linuxが起動します。

しなければならないLinuxauto_settings.confの内容をの内容に置き換えてauto_default.confください。それ以外の場合は、Linux専用のブートシナリオに閉じ込められます。私は好きではありません。私がしなければならないのは、起動時にファイルの内容を変更することだけです。

bootfacilitator.sh()にスクリプトが含まれています/mnt/data/Backup/Software/Linux

Linuxでは、の内容をの内容にbootfacilitator.sh置き換える必要があります。/mnt/efi/EFI/boot/auto_settings.conf/mnt/efi/EFI/boot/auto_default.conf

さらに、このプロジェクトには別の目標もあります。また、Windowsデスクトップコンテキストメニューの項目をミラーリングする2つのコンテキストメニュー項目(「Windowsで起動」と「Linuxを再起動する」)をLinuxデスクトップに持ちたいと思います。

最終結果は、他のオペレーティングシステムを統合できるスケーラビリティと、あるオペレーティングシステムから別のオペレーティングシステムへのシームレスなワークフローを持つことです。

PS:私のfstab:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/sda1   /mnt/efi    vfat    defaults    0   0
UUID=f9750eee-576b-46b2-a0a1-f6ad34f4d526 /               ext4    errors=remount-ro 0       1
UUID=1f49ddc3-88d1-40e6-b706-7623a4fb47ac none            swap    sw              0       0
/dev/sda4   /mnt/osx    hfsplus defaults    0   0
/dev/sda3   /mnt/win_7  ntfs    defaults    0   0
/dev/sda5   /mnt/data   ntfs    defaults    0   0
/mnt/data/Videos    /home/rich/Videos   none    bind    0   0
/mnt/data/Documents /home/rich/Documents    none    bind    0   0
/mnt/data/Music /home/rich/Music    none    bind    0   0
/mnt/data/Pictures  /home/rich/Pictures none    bind    0   0
/mnt/data/Downloads /home/rich/Downloads    none    bind    0   0
/mnt/data/Public    /home/rich/Public   none    bind    0   0

bootfacilitator.sh:

#!/bin/sh 
#description: Re-Enables EFI multi-select boot menu (in case of forced selection scenario) 
sudo cp /mnt/efi/EFI/Boot/auto_default.conf /mnt/efi/EFI/Boot/auto_settings.conf

ベストアンサー1

これを達成する方法はいくつかあります。

  • から.desktopファイルを作成します~/.config/autostart/。ログインすると実行されます。私たちは注文に似ていますsudo cp input.txt output.txt
  • より強力な解決策は、システムの起動時に実行されるUpstartジョブを作成することです。

おすすめ記事