kexec(8) - Linux 매뉴얼 페이지

kexec(8) - Linux 매뉴얼 페이지

저는 이 기술을 배우고 이해할 수 있는 방법을 찾고 있습니다. 이것이 내가 말해야 할 것입니다:

  • Slax가 시작되고, {RAM에 자신을 복사하는 것과 같은 작업을 수행}한 다음transitions control to the kernel/file system it just made
  • SYSLINUX는 FAT32/NTFS 시스템에서 부팅하고 {작업을 수행}한 다음boots into a kernel
  • ISOLINUX는 CD/DVD에서 부팅하고 {작업을 수행}합니다.boots into a kernel

이거 이름이 있나요? GRUB에서 체인 로딩을 사용할 때와 비슷합니까?

  • GRUB가 시작되고, 선택 메뉴를 로드하고, 선택합니다. 체인 로딩 선택인 경우 passes control to something else.

커널을 사용하여 FAT32/NTFS 파티션의 .iso를 RAM으로 추출한 다음 부팅 시 RAM 드라이브가 있었던 것처럼 RAM 드라이브에서 부팅하는 방법을 찾고 있습니다. 내가 이 일을 하는 이유에 대한 자세한 내용은 다음을 참조하세요.이 문제.

그러나 여기서는 코어가 다른 코어로 "변환"되는 방법에 대한 세부 정보를 요청하고 있습니다. 이거 이름이 있나요? 나는 그것에 대해 들었고 INT13h그것이 GRUB/체인 로딩에 사용된다고 생각합니다. 이것이 "다른 커널로 재부팅" 기술입니까? 그렇지 않다면 어떻게 달성됩니까?

답변1

내 추측은 이렇습니다.http://linux.die.net/man/8/kexec

kexec(8) - Linux 매뉴얼 페이지

이름

kexec - 새 커널로 직접 부팅

요약

/sbin/kexec [-v (--version)] [-f (--force)] [-x (--no-ifdown)] [-l (--load)] [-p (--load- )] [-u(--언로드)] [-e(--exec)] [-t(--유형)] [--mem-min=addr] [--mem-max=addr]

설명하다

kexec는 현재 실행 중인 커널에서 다른 커널을 로드하고 부팅할 수 있게 해주는 시스템 호출입니다. kexec는 커널 내에서 부트로더 기능을 실행합니다. 표준 시스템 부팅과 kexec 부팅의 주요 차이점은 kexec 부팅 중에는 BIOS 또는 펌웨어(아키텍처에 따라 다름)에서 일반적으로 수행되는 하드웨어 초기화가 수행되지 않는다는 것입니다. 이는 재부팅에 필요한 시간을 줄이는 효과가 있습니다. 커널을 구성할 때 CONFIG_KEXEC=y가 선택되어 있는지 확인하세요. CONFIG_KEXEC 옵션은 kexec 시스템 호출을 활성화합니다.

답변2

Int 13은 인터럽트입니다. 특히 "13"은 BIOS/펌웨어 디스크 서비스/API에 대한 진입점이므로 디스크 IO(입력/출력)에 이 특정 인터럽트를 사용할 수 있습니다. Int 9 등뿐만 아니라 다른 인터럽트도 있습니다. 인터럽트는 실행 컨텍스트를 프로그램에서 펌웨어/BIOS, OS 드라이버/운영 체제 등으로 전환하여 펌웨어의 도움을 받는 방법입니다. GRUB은 OS 커널이 메모리에 없고 자체 로드(1단계, 1.5단계, 모듈 등)해야 할 때 하드 드라이브에서 부트로더를 로드하는 초기 단계에서 INT 13을 사용하므로 Grub은 기본적으로 BIOS/펌웨어에 의존합니다. GRUB 로딩 부분 작업을 완료합니다.

파일 시스템에서 ISO를 로드하는 가장 간단한 방법은 GRUB 루프백/루프 모듈을 사용하여 ISO를 부팅하는 것입니다. GRUB는 하드 드라이브의 MBR에 설치하는 것이 가장 좋으며, 컴퓨터를 시작할 때 GRUB 부팅 메뉴에서 GRUB 명령을 입력하여 ISO가 있는 파일 시스템에서 ISO를 로드하기 시작합니다. ISO를 램디스크로 추출하는 데 커널이 필요하지 않습니다. GRUB는 다른 커널에 의존하지 않고 이 모든 작업을 직접 수행할 수 있습니다.

예를 들어, Debian의 경우 다음과 같을 수 있습니다: insmod Loopback linux (hd0,1)/deb.iso/install.amd/vmlinuz initrd (hd0,1)/deb.iso/install.amd/initrd.gz boot

(GRUB이 사용할 수 있는 모듈과 이것이 EFI|BIOS 부팅인지 확인해야 합니다)

체인 로딩은 GRUB/Bootloader를 사용하여 다른 GRUB/Syslinux/Bootloader를 부팅하여 다른 운영 체제를 로드합니다. 일반적으로 다음을 수행합니다: GRUB-MBR--->vmlinuz 로드하려면 다음을 수행합니다: GRUB-MBR--->CDROM-GRUB-MBR--->vmlinuz

관련 정보