하드 디스크에 저장된 ISO 파일로 부팅하려면 어떻게합니까?


12

부팅 가능한 CD / DVD 또는 라이브 USB를 만들거나 구울 수 있고 부팅 할 수 있음을 알고 있습니다. 그러나 현재 GNU / Linux를 실행 중이고 하드 디스크에 설치하려는 다른 GNU / Linux의 ISO 파일을 가지고 있다고 가정하면 하드 디스크에서 ISO로 직접 부팅하고 해당 GNU / Linux 운영 체제를 시도 / 설치할 수 있습니까? ?

답변:


15

예, GRUB부트 로더 메뉴에 메뉴 항목을 추가하면 됩니다.

당신은 편집하여 사용자 정의 GRUB 메뉴 항목을 추가 할 수 있습니다 /etc/grub.d/40_custom,

맞춤 메뉴 항목의 예 :

 exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.  

menuentry "Trisquel ISO" {
        set isofile="/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso"
        loopback loop (hd0,5)$isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
        initrd (loop)/casper/initrd
}

지시 및 설명 :

  1. 이 명령 set은 ISO 파일의 경로를 변수에 저장하는 데 사용됩니다 (here) isofile.

  2. loopback파일 시스템 이미지에서 장치를 만드는 데 사용됩니다. 그러기 위해서는 장치와 이미지 파일을 지정해야합니다. 여기서 우리 는 디스크 의 다섯 번째 파티션 (hd0,5)$isofile을 (hd0,5)나타냅니다 .

    • 참고 사항 : (hd0,5)에서
      1 번째 숫자는 장치 번호 0(여기서는 0 = 1 번째 장치)로 시작하고
      2 번째 숫자는 시작 번호 1(여기서 5 = 5 번째 파티션)를 나타냅니다.
      그 의미는/dev/sda5
    • 변수 $isofile에는 ISO 파일의 경로가 있습니다. 그래서 결국은됩니다 (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso.
    • 자세한 정보는 다음을 방문하십시오 : 장치 및 파일 지정 방법 .

  3. linux명령은 파일에서 Linux 커널 ( vmlinuz ) 을로드하는 데 사용 됩니다. 리눅스 커널의 경로를 ISO에 넣으십시오.

    • 커널의 경로를 얻기 위해 ISO의 내용을 읽거나 추출하십시오.

       $ 7z l trisquel_7.0_i686.iso | grep vmlinu
       2014-10-29 21:41:43 .....      5841680      5841680  casper/vmlinuz
       2014-11-03 00:45:09 .....      5844176      5844176  casper/vmlinuz.netinst
      

      그래서 /casper/vmlinuz여기에 사용되었습니다.

  4. initrd 명령은 Linux 커널 이미지의 초기 램 디스크를로드하고 메모리의 Linux 설정 영역에서 적절한 매개 변수를 설정하는 데 사용됩니다.

    • initrd 는 임시 루트 파일 시스템을 메모리에로드하기위한 체계입니다. initrdISO에 경로를 넣습니다 .
    • 경로를 얻으려면 ISO의 내용을 읽거나 추출하십시오 initrd.

      $ 7z l trisquel_7.0_i686.iso | grep initrd
      2014-11-03 00:45:19 .....     16851900     16851900  casper/initrd
      2014-11-03 00:45:09 .....      9398592      9398592  casper/initrd.netinst
      
  5. 추가 매개 변수 (예 : boot=casper iso-scan/filename=$isofile noprompt noejectGNU / Linux 배포판에 따라 다를 수 있으며 다른 Linux 제품군에 따라 다름) 여기 에서 다른 제품군 / 배포에 대한 일부 구성을 찾을 수 있습니다 .

    참고 : 일부 배포판을 사용 initrd.gz또는 initrd.lz사용되는 알고리즘 / 압축에 따라.

를 편집 한 후 /etc/grub.d/40_customGRUB을 update-grub2명령 으로 업데이트해야합니다 . 재부팅하면 GRUB 화면에 추가 한 사용자 정의 메뉴 항목이 나타납니다. 그리고 GNU / Linux 배포판의 라이브 환경을 사용할 수도 있습니다.

ISO에서 설치하려면 설치 프로그램이 마운트 된 파티션을 마운트 해제해야합니다. 즉, 다른 시스템이에 장착되어 /isodevice있다면 가능 umount -l /isodevice합니다.


와우, 감동합니다 ... 새 OS를 설치하려면 ISO 파일이 저장된 파티션을 포함하여 파티션을 다시 포맷해야하는 경우가 종종 있기 때문에 불가능하다고 생각했을 것입니다.
— 와일드 카드

샘플은 GRUB2를 사용합니다. Centos 6은 GRUB1 (grub legacy)을 사용하며 위의 예제는 작동하지 않습니다.
— Ikrom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.