'grub-mkimage --config='의 실제 사용법

'grub-mkimage --config='의 실제 사용법

Linux에서는 GRUB 2 Bootloader를 사용하여 이 주제 에 대해 알아내려고 했습니다 --config=.grub-mkimageman 1 grub-mkimage

-c, --config=FILE
FILE을 다음으로 삽입일찍구성

내 첫 번째 추측은 /boot/grub/grub.cfg->였지만 이 파일을 빌드하는 별도의 명령이 있어서 그 추측에서 벗어나게 되었습니다. 또 다른 추측은 /boot/config-3.16.0-4-686-pae( file: "Linux make config build file, ASCII text")의 출력입니다. 내가 찾은 다른 파일은 ASCII가 아니라 바이너리였는데, 그럴 가능성도 거의 없습니다.

질문:어떤 파일이나 파일 형식을 의미할까요?


고쳐 쓰다: 이걸 찾았어GRUB 2에 대한 gnu.org 문서, GRUB 프롬프트의 명령에서:

configfile file
FILE을 구성 파일로 로드합니다. FILE이 메뉴 항목을 정의하면 해당 항목이 포함된 메뉴가 즉시 표시됩니다.

아마 같은 파일이겠죠? 흥미로운 점은 온라인 매뉴얼에 이 옵션이 언급되지 않은 것 같습니다.


업데이트 2: 출력에서 ​​다음 줄을 찾습니다.grub-mkrescue --output grub.iso --verbose

grub-mkrescue: 정보: grub-mkimage --directory '/usr/lib/grub/i386-pc' --prefix '/boot/grub' --output '/tmp/grub.ZiXwO6/boot/grub/i386- pc/eltorito.img' --format 'i386-pc-eltorito' --압축 '자동'--config '/tmp/grub.UtCj8W''바이오디스크' 'iso9660'`

그래서--config '/tmp/grub.UtCj8W'제외..어쩐지 /boot/grub/grub.cfg? 아니요, grub-install자세한 출력이 활성화된 상태에서 실행할 때 구성에 대해 아무것도 찾지 못했습니다.


업데이트 3: man 1 grub2-mkstandalone열려 man 3 grub2-mkstandalone있지만 발행하면 man 3 grub2-mkstandalone오류 메시지가 발생합니다. 또한: grub-mkimage --config=매뉴얼 페이지에만 나타나는 것 같지만 출력 --help이나 --usage출력에는 나타나지 않습니다.

답변1

grub-mkimagegrub필요할 때 다른 모든 것이 구축되는 중요한 핵심입니다. 예를 들어, grub-[install,mkstandalone,mkrescue]그것은 모두 사용법을 의미하므로 grub-mkimage일단 grub-mkimage이해하면 모든 것이 쉬워 보입니다.

grub-mkimage구성 파일을 이미지에 "연결"하는 방법에는 두 가지가 있습니다.

  1. 옵션 -c, --config=File (초기 구성으로 내장된 FILE)

  2. 옵션 -m, --memdisk=file(파일을 다음으로 포함저장 디스크최종 구성 파일 포함)

예: 내장된 구성[$prefix]/boot/grub/[x86_64-efi/]grub.cfg

이것저장 디스크다양한 모듈이 "사용 준비"되어 있는 파일 시스템을 grub갖춘 가상 디스크 장치입니다 . 즉, 직접 로드할 수 있습니다. 그러나 옵션에서처럼 "사전 로드된 모듈"이라고 직접 호출되지는 않습니다 (마지막 모듈은 Linux 운영 체제에 로드된 드라이버와 유사합니다).tarfsinsmod--modules="blah blah...:"initramfs

이 주장을 가장 잘 보여주는 것은 한 줄 명령을 사용하여 a를 livecd_only_biosPC_awareda로 다시 마스터하는 것입니다.livecd_isohybrid_bios_and_efi_awared

xorriso -osirrox on -indev TinyCorePure64-6.0.iso -outdev new.iso \
-cpr efime.img /boot -- \
-rm /boot/isolinux/boot.cat -- \
-mkdir /.disk /boot/grub -- \
-cpr grub.cfg /boot/grub -- \
-cpr info /.disk/info -- \
 -as mkisofs  -graft-points -volid "tinyefi" -r -J -l -eltorito-boot boot/isolinux/isolinux.bin -eltorito-catalog boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -eltorito-alt-boot -e boot/efime.img -no-emul-boot -isohybrid-gpt-basdat

어디

  1. ftp://ftp.nluug.nl/pub/os/Linux/distr/tinycorelinux/6.x/x86_64/archive/6.0/TinyCorePure64-6.0.iso
  2. grub.cfgisolinux.cfg원본 라이브 ISO를 재현하기 위한 간단한 구성 입니다 .
  3. 부트로더는 다음 efime.img을 통해 얻습니다.

    grub-mkimage -m memdisk -O x86_64-efi -o grubx64.efi --compression=xz disk part_msdos part_gpt linux linux16 loopback normal configfile test search search_fs_uuid search_fs_file true iso9660 test search_label efi_uga efi_gop gfxterm gfxmenu gfxterm_menu fat ext2 ntfs cat echo ls memdisk tar

  4. 가장 단순한저장 디스크초기에 포함된 구성 파일이 포함되어 있습니다 (memdisk)/boot/grub/grub.cfg.

이 모든 내용은 grub-mkBootx64.efi @sourceforge.net/projects/toysbox에서 연습을 통해 곧 제공될 예정입니다.

답변2

Grub 매뉴얼 2.04, 섹션 6.5에서:

GRUB는 구성 파일을 코어 이미지에 직접 삽입하여 일반 모드로 들어가기 전에 로드되도록 지원합니다. 예를 들어 실제 구성 파일을 직접 찾을 수 없거나 파일 로드 문제를 디버깅해야 하는 경우에 유용합니다.
...
구성 파일을 포함하려면 .를 사용하십시오 -c. grub-mkimage...
포함된
구성 파일에는 메뉴 항목이 직접 포함될 수 없지만 config file[the] [명령]을 사용하여 다른 곳에서만 읽을 수 있습니다.

이러한 이유로 이 --config옵션은 일반 작업이 시작되기 전에 grub을 초기화하는 데 도움이 되는 명령이 포함된 구성 파일을 포함하기 위한 것입니다. 전체 grub.cfg메뉴 항목 등을 포함할 의도는 없습니다 .

관련 정보