Grub은 시작 시 XEN 커널을 인식하지 못합니다.

Grub은 시작 시 XEN 커널을 인식하지 못합니다.

우리는 Eucalyptus 노드 컨트롤러 7개 중 5개에 XEN 커널을 성공적으로 설치하고 시작할 수 있었습니다. 후자의 두 개는 동일한 설치 프로세스를 실행했음에도 불구하고 여전히 동일한 문제를 겪었습니다.

나는 설치했다유칼립투스-NC그리고 kvm 하이퍼바이저를 사용하여 서비스를 시작할 수 있습니다. 그런 다음 다음을 사용하여 유칼립투스를 구성합니다.xen을 하이퍼바이저로 설치하고 다음 패키지를 사용합니다.

yum install -y centos-release-xen xen libvirt python-virtinst libvirt-daemon-xen

처음에는 xen 패키지를 가져오지 않기 때문에 이 명령을 두 번 실행했습니다. 패키지가 성공적으로 설치되었습니다.

/boot/grub/grub.conf또한 xen 커널을 새 항목으로 업데이트했습니다 .

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_erams7-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=15
splashimage=(hd0,0)/grub/splash.xpm.gz

title CentOS-XEN (XEN-4.2.4-33.el6.centos.alt.x86_64)
    root (hd0,0)
    kernel /xen.gz dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all
    module /vmlinuz-3.10.43-11.el6.centos.alt.x86_64 ro root=/dev/mapper/vg_erams7-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_erams7/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_erams7/lv_root rd_NO_DM rhgb quiet
    module /initramfs-3.10.43-11.el6.centos.alt.x86_64.img
title CentOS (3.10.43-11.el6.centos.alt.x86_64)
    root (hd0,0)
    kernel /vmlinuz-3.10.43-11.el6.centos.alt.x86_64 ro root=/dev/mapper/vg_erams7-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_erams7/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_erams7/lv_root rd_NO_DM rhgb quiet
    initrd /initramfs-3.10.43-11.el6.centos.alt.x86_64.img
title CentOS (2.6.32-431.20.5.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-431.20.5.el6.x86_64 ro root=/dev/mapper/vg_erams7-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_erams7/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_erams7/lv_root rd_NO_DM rhgb quiet
    initrd /initramfs-2.6.32-431.20.5.el6.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_erams7-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_erams7/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_erams7/lv_root rd_NO_DM rhgb quiet
    initrd /initramfs-2.6.32-431.el6.x86_64.img

그런 다음 grub 쉘을 사용하여 MBR을 새로 고쳤습니다.

$ grub
Probing devices to guess BIOS drives. This may take a long time.


 GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]
grub> find /grub/grub.conf
find /grub/grub.conf
 (hd0,0)
grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  27 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+27 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.

재부팅할 수 있지만 grub 메뉴에는 위에 새로 추가된 XEN 코어가 아닌 기존 코어 3개만 표시됩니다.

여기에 이미지 설명을 입력하세요.

로그인 후 실행하면 virsh list아무 것도 표시되지 않지만 다음과 같이 표시됩니다.

Id    Name                           State
----------------------------------------------------
 0     Domain-0                       running

XEN 커널이 시작되지 않아 eucalyptus-nc 서비스도 시작되지 않습니다.

내 질문 - 위의 grub 항목이 부팅 시 인식되는 원인은 무엇입니까?

답변1

이 문제는 GRUB이 XEN 커널을 인식할 수 있도록 grub 파일을 편집하여 해결되었습니다. 즉, 서버에 설치된 XEN 버전과 일치하도록 논리 볼륨의 제목을 간격 지정하고 편집했습니다.

# grub.conf generated by anaconda
... lines inserted below ...


title CentOS-XEN (**XEN-3.10.43-11.el6.centos.alt.x86_64**)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all
        module /vmlinuz-3.10.43-11.el6.centos.alt.x86_64 ro root=/dev/mapper/vg_erams7-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_erams7/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_erams7/lv_root rd_NO_DM rhgb quiet
        module /initramfs-3.10.43-11.el6.centos.alt.x86_64.img
        ... lines inserted below ...

title CentOS (3.10.43-11.el6.centos.alt.x86_64)
...

나는 항상 헤더 줄이 단지 레이블일 뿐이고 grub 파일 내의 간격은 중요하지 않다고 생각했지만, 알고 보니 내가 틀렸던 것입니다. :-/

관련 정보