Linux 부팅 중 ESP에서 파일을 덮어쓰는 방법

Linux 부팅 중 ESP에서 파일을 덮어쓰는 방법

저는 Windows 7과 Linux Mint 17 Cinnamon을 실행하는 64비트 이중 부팅 시스템을 가지고 있습니다. rEFInd를 사용하여 부팅할 시스템을 그래픽으로 선택합니다.

rEFInd에 대한 일부 정보:

  • EFI 부트로더입니다.
  • 외부 텍스트 기반 구성 파일(*.conf)을 사용합니다.
  • 구성 파일은 다른 파일을 참조할 수 있습니다. 그러나 런타임에는 refind.conf첫 번째 파일( )에서 참조하는 외부 파일만 존중됩니다.
  • 특정 속성에 대한 여러 참조는 계단식으로 처리됩니다. 즉, 각 참조는 이전의 모든 참조를 덮어씁니다.

...efi 드라이브에 일부 구성 파일이 저장되어 있습니다. (efi) 시작 시 다음 구성 파일이 로드됩니다.

  • refind.conf- 기본 상용구 설정 파일. 이 파일은 다음 두 파일을 순서대로 참조합니다.
  • 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.conf. auto_mint.conf작업이 성공하면 시스템이 재부팅됩니다.

게다가에 따르면시작하다bootfacilitator투명이라고도 알려진 창은 의
내용을 의 내용으로 바꾸는 데 사용되는 기능이었습니다.auto_settings.confauto_default.conf

시스템이 종료되고 rEFInd로 부팅됩니다. 그러면 GUI를 건너뛰고 Linux가 부팅됩니다.

나는해야한다리눅스auto_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 데스크탑 컨텍스트 메뉴의 항목을 미러링하는 두 개의 컨텍스트 메뉴 항목("Windows로 부팅" 및 "Linux 다시 시작")을 Linux 데스크탑에 갖고 싶습니다.

최종 결과는 다른 운영 체제를 통합할 수 있는 확장성과 함께 한 운영 체제에서 다른 운영 체제로의 원활한 워크플로를 갖게 되는 것입니다.

추신: 내 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 작업을 생성하는 것입니다.

관련 정보