루프백을 통한 CentOS grub2 부팅 iso

루프백을 통한 CentOS grub2 부팅 iso

다른 Linux 이미지를 멀티부팅하기 위한 USB 키 설정이 있습니다. CentOS를 추가하려고하는데 이것은유사한 항목 게시~을 위한grub.cfg

set drive_label=multipass01
set isopath=/iso

menuentry "CentOS-6.3-x86_64-LiveCD" {

# Tried the following root designations;
# root=live:LABEL="multipass01" 
# root=live:LABEL=multipass01 
# root=live:LABEL="multipass01":$isofile
# root=live:LABEL=multipass01:$isofile
# root=live:/dev/disk/by-label/$drive_label$isofile
# root=live:UUID=3A55-12BC:$isofile
# root=live:UUID=:$isofile
# root=UUID=3A55-12BC
# root=live:$isofile
# iso-scan/filename=$isofile

    set isofile="$isopath/CentOS-6.3-x86_64-LiveCD.iso"
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz0 boot=isolinux root=live:LABEL=multipass01:$isofile rootfstype=auto ro liveimg 3 rhgb rd.luks=0 rd.md=0 rd.dm=0 splash --
    initrd (loop)/isolinux/initrd0.img
}

이는 이 항목을 시작하려고 시도한 결과입니다(어느 항목에 관계없이 root=).

커널 패닉

편집하다;관련 Fedora 오류

답변1

root=live:나는 당신과 같은 방법을 시도했지만(그러나 liveos는 나에게 Fedora 17이었습니다) 저도 실패했습니다. isofile을 옵션 으로 사용할 수 없습니다 . root=live:LABEL=multipass01:$isofile인식되지 않습니다(향후 수정될 수도 있지만 기대됩니다).

그래서 저는 다른 접근 방식을 사용했습니다.

#step 1 create a blank partition that can hold the liveos.(/dev/sdb5)

#step 2 copy the liveos to the partition
dd if=/my-path-to-f17-live-iso of=/dev/sdb5

#step 3 change the grub.cfg,
#note1: don't need to use loopback, just use (hdX,Y).
#note2: "root=" becomes "root=live:/dev/sdb5"
menuentry 'F17 install' --class fedora --class gnu-linux --class gnu --class os {
    insmod part_msdos
    linux (hd1,5)/isolinux/vmlinuz0 linux root=live:/dev/sdb5 rootfstype=auto ro liveimg rd.luks=0 rd.md=0 rd.dm=0 
    initrd (hd1,5)/isolinux/initrd0.img
}

/dev/sdb5CD/DVD-ROM 역할을 하는 경우 에도 이 방법을 시도해 볼 수 있습니다 .

또 다른 방법은 그러한 옵션을 인식하도록 Python 스크립트를 변경하는 것입니다 dracut. 하지만 그럴 가치가 없다고 생각합니다.

답변2

이와 같이

menuentry "CentOS-7.0-1406-x86_64-DVD" {
    set root='hd1,msdos1'
    set isofile='/CentOS-7.0-1406-x86_64-DVD.iso'
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:/dev/vdb1:$isofile
    initrd (loop)/isolinux/initrd.img
}

답변3

가능한 답변을 찾을 수 없습니다. 하지만 이제는 구현된 것으로 보입니다.

이것우편 엽서dracut에서 설명된 기능을 구현하는 커밋이 언급되었습니다(이것이 바로 여러분이 원하는 것입니다).

root= 옵션은 다음과 같습니다.핵심명령줄 매개변수:

root=       [KNL] Root filesystem
        See name_to_dev_t comment in init/do_mounts.c.

이러한 유형의 설정이 작동하려면 initramfs 인프라 내부를 살펴보고 지원되는지 확인해야 합니다. (즉, 루트로 사용된 커널 설치 .iso는 분명히 커널 작업이 아닌가?)

38절 이후의 참고 사항을 보면 일종의 단계별 지침을 볼 수 있습니다. 이제 제가 직접 테스트해보겠습니다.

편집: Centos 6.4에서는 작동하지 않습니다. //dracut의 고대 버전.

관련 정보