web-dev-qa-db-ja.com

systemrescuecdからのgrub構成を5から6にアップグレード

SystemRescueCd v5で動作する構成があり、次のようになります。

menuentry 'System Rescue Cd' {
  set isofile='/systemrescuecd.iso'
  loopback loop (hd3,gpt2)$isofile
  linux (loop)/isolinux/rescue64 isoloop=$isofile nouveau.blacklist=1 nomodeset
  initrd (loop)/isolinux/initram.igz
}

さて、最新バージョンに基づいて、ここに書かれています:
http://www.system-rescue-cd.org/manual/Installing_SystemRescueCd_on_the_disk/

このように見えます:

menuentry "SystemRescueCd (isoloop)" {
    load_video
    insmod gzio
    insmod part_gpt
    insmod part_msdos
    insmod ext2
    search --no-floppy --label boot --set=root
    loopback loop /systemrescuecd.iso
    echo   'Loading kernel ...'
    linux  (loop)/sysresccd/boot/x86_64/vmlinuz img_label=boot img_loop=/systemrescuecd.iso archisobasedir=sysresccd copytoram setkmap=us
    echo   'Loading initramfs ...'
    initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
}

与えられた、今私は私がアップグレードしようとした別のドライブでISOを使用します:

menuentry "SystemRescueCd (isoloop)" {
    load_video
    insmod gzio
    insmod part_gpt
    insmod part_msdos
    insmod ext2
#    search --no-floppy --label boot --set=root
#    loopback loop /systemrescuecd.iso
set isofile='/systemrescuecd.iso'
loopback loop (hd3,gpt2)$isofile
    echo   'Loading kernel ...'
    linux  (loop)/sysresccd/boot/x86_64/vmlinuz img_label=boot img_loop=/systemrescuecd.iso archisobasedir=sysresccd copytoram setkmap=us
    echo   'Loading initramfs ...'
    initrd (loop)/sysresccd/boot/x86_64/sysresccd.img
}

起動時に起動しますが、次のエラーがスローされます。
Waiting 30 seconds for device /dev/disk/by-label/boot

あなたはそれが何であるか知っていますか?
別のドライブから起動するSystemRescueCdを使用しようとしましたが、残りは同じです...

1
Patrik Laszlo
menuentry "System Rescue CD" {
    set gfxmode=auto
    set gfxpayload=keep
    insmod part_msdos
    insmod part_gpt
    insmod efi_gop
    insmod efi_uga
    insmod font
    insmod gfxterm
    insmod video
    insmod videotest
    terminal_output gfxterm
    set uuid="#UUID"
    search --no-floppy --fs-uuid --set=root $uuid
    set iso="systemrescuecd-6.0.3.iso"
    loopback loop /$iso
    linux (loop)/sysresccd/boot/x86_64/vmlinuz scandelay=1 copytoram doxdetect archisobasedir=sysresccd img_label=#LABEL img_loop=/$iso
    initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/AMD_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
}

これは上記の解決策に基づいており、機能していましたが、X.orgが失敗し、英語のキーマップを設定していたので、それを削除し、任意のvgaドライバーで機能するようにdoxdetectを追加しました。

#UUIDと#LABELが表示されているので、blkidからパーティショニングを取得できます。

その後、startxで動作します

0
Patrik Laszlo

自分に合ったメニューを見つけたので、ここに貼り付けてコメントを書き留めます(:

default=0
timeout=13

set gfxmode=auto
set gfxpayload=keep
insmod part_msdos
insmod part_gpt
insmod efi_gop
insmod efi_uga
insmod font
insmod gfxterm
insmod video
insmod videotest
terminal_output gfxterm
loadfont /grub/fonts/unicode.pf2

menuentry "Apagar" {
    halt
}

menu "SystemRescueCD 6.0.3 [64 Bits]" {
    set uuid="..."
    search --no-floppy --fs-uuid --set=root $uuid
    set iso="systemrescuecd-6.0.3.iso"
    loopback loop /$iso
    linux (loop)/sysresccd/boot/x86_64/vmlinuz scandelay=1 setkmap=es copytoram dostartx archisobasedir=sysresccd img_label=... img_loop=/$iso
    initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/AMD_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img
}

set uuid="..."の代わりに...の行に、ISOが配置されているパーティションのUUIDを入力すると、rootとして使用されます。

パラメータimg_label=......の代わりにISOが配置されているパーティションのLABELを配置します。これは、losetupの前にマウントされるため、ISOファイルを見つけることができます。

それは私にとってのトリックでした。Grub2がインストールされているパーティションのラベルではなく、ISOファイルがある「その他」のパーティションのラベルを配置しました。

これがあなたや他の人に役立つことを願っています。

注1:他のバージョンのSystemRescueCDで深く試してみる必要がありますが、最新の6.0.3で動作する場合は、6.0.3より前の6.xでも動作する必要があると思います(ただし、テストはしていません)。

注2:dostartxはまったく機能しません。毎回startxと入力する必要がありますが、copytoramsetkmap=es(スペイン語キーボードの場合)は機能します。

1
Laura