하드 디스크에 저장된 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.