web-dev-qa-db-ja.com

GRUB2ブートオプションへのISOの追加

ISO(ubuntuの代替ディストリビューション)をGRUBに追加しようとしています。

これはfdisk -lの出力です。


FDISK出力

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00061b6d

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        9539    76614656   83  Linux
/dev/sda2            9539        9730     1533953    5  Extended
/dev/sda5            9539        9730     1533952   82  Linux swap / Solaris

 

Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x41ffc810
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       30401   244196001    c  W95 FAT32 (LBA)

grub.cfg

menuentry "Ubuntu Alternate Install 10.10 32bit" {
 loopback loop (hd0,0)/boot/ubuntu-10.10-alternate-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-10.10-alternate-i386.iso noprompt nomodeset 
 initrd (loop)/casper/initrd.lz
}

このように40_customファイルにエントリを追加し、Sudogrub-updateを実行しました。

menuentry "Ubuntu Alternate Install 10.10 32bit" {
 loopback loop (hd0,1)/boot/ubuntu-10.10-alternate-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-10.10-alternate-i386.iso noprompt nomodeset 
 initrd (loop)/casper/initrd.lz

しかし、このファイルが見つかりません。GRUBメニューからこのオプションを選択したときにカーネルなどをロードする必要があります。どこが間違っているのですか?

3
Nishant

http://pendrivelinux.com/downloads/multibootlinux/grub.cfg によると、(hd0,1)

menuentry "Ubuntu 10.10 Desktop ISO" {
 loopback loop /ubuntu.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noeject noprompt splash --
 initrd (loop)/casper/initrd.lz
}

これは Linuxを使用せずにGrub2を介してUSBから複数のISOを起動する にあります。おそらく、このページをチェックして、これらの手順をセットアップと比較する必要があります。

幸運を!

0
Samoth

私はこれらのトピックについてコミュニティウィキを実行しようとしました。以下の ここ から答えをコピーします。これがお役に立てば幸いです。


そこで、ISOをロードするための単純なファイル_39_iso_を_/etc/grub.d/_内に作成しました。 Ubuntu 10.10、Clonezilla、およびSystemRescueCDのコピーを持っています。私のエントリは、メニューエントリを追加する前に、ISOファイルが_/iso/_内で利用可能であることを確認します。たとえば、Clonezillaはメモリに読み込まれるので、いつでもハードドライブのクローンを作成できます。

Ubuntu 10.10:

_if test -e /iso/ubuntu-10.10-desktop-AMD64.iso ; then
  isofile="/iso/ubuntu-10.10-desktop-AMD64.iso"
  echo "Found Ubuntu 10.10 (x64) ISO: ${isofile}" >&2
  cat << EOF

  menuentry "Ubuntu 10.10 (x64) ISO"
  {
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile
    initrd (loop)/casper/initrd.lz
  }
EOF
fi
_

Clonezilla:

_if test -e /iso/clonezilla-live-1.2.6-24-AMD64.iso ; then
  isofile="/iso/clonezilla-live-1.2.6-24-AMD64.iso"
  echo "Found Clonezilla Live ISO: ${isofile}" >&2
  cat << EOF

  menuentry "Clonezilla Live 1.2.6-24-AMD64 ISO"
  {
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live live-config union=aufs nolocales noprompt ocs_lang="en_US.UTF-8" ocs_live_keymap="NONE" vga=791 ip=frommedia toram=filesystem.squashfs findiso=$isofile
    initrd (loop)/live/initrd.img
  }
EOF
fi
_

SystemRescueCD

_if test -e /iso/systemrescuecd-x86-1.6.2.iso ; then
  isofile="/iso/systemrescuecd-x86-1.6.2.iso"
  echo "Found SystemRescueCD ISO: ${isofile}" >&2
  cat << EOF

  menuentry "SystemRescueCD 1.6.2 (x64) ISO"
  {
    loopback loop $isofile
    linux (loop)/isolinux/rescue64 setkmap=us docache isoloop=$isofile
    initrd (loop)/isolinux/initram.igz
  }
EOF
fi
_

また、GRUBがWindows7をWindows 7 (loader)として名前を付ける方法をWindows 7 Professional (x64)のようなより良いものに修正しました。

_if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then
  LONGNAME="Windows 7 Professional (x64)"
Elif [ -z "${LONGNAME}" ] ; then
  LONGNAME="${LABEL}"
fi
_

次のようなセクションを置き換えました。

_if [ -z "${LONGNAME}" ] ; then
  LONGNAME="${LABEL}"
fi
_

GRUBの_30_os-proper_の内部

0
Urda