Я не могу получить CentOS 7 iso (на жестком диске) для загрузки с GRUB2

Я не могу получить CentOS 7 ISO (на жестком диске) для загрузки с GRUB2, установленного на жесткий диск.

Я попытался выполнить следующие шаги на основе этой статьи

Мое требование – загрузить CentOS ISO с виртуального жесткого диска внутри VMWare VM (т.е. загрузочный .vmdk). Это требования, и альтернативы не то, что я ищу на данный момент.

Я попытался установить grub2 на виртуальный жесткий диск и изменить конфигурацию grub для загрузки этого ISO

Я выполняю оба этих действия на виртуальной машине, которую я загрузил в последнюю CentOS Gnome Live ISO (вот этот процесс, я использовал)

Создайте новую виртуальную машину (назовите ее VMDK_Stager) с виртуальным жестким диском 4GB (vmdk)

Гора и загрузка в CentOS-Live-GNOME.iso

Открыть терминал для запуска команд

Получить root

 su 

Запустите эти команды, чтобы запустить диск, и установите grub и Create Partition

 fdisk /dev/sda n (for new partition, then select all defaults for blocks/sizing/etc.) a (to activate) w (to write changes and quit fdisk) 

Формат раздела

 mkfs.ext4 /dev/sda1 

монтировать раздел

 mount /dev/sda1 

обновления пакетов установки

 yum install livecd-tools yum upgrade grub2 yum upgrade dracut 

установите Grub на диск / partiion (это создаст /mnt/boot/grub2 )

  grub2-install /dev/sda --boot-directory=/mnt/boot 

create /mnt/boot/iso для размещения файла ISO

 mkdir /mnt/boot/iso cd /mnt/boot/iso 

Скопируйте CentOS-7-x86_64-GNOME-1603-02.iso (скачанный с зеркала CentOS) в /mnt/boot/iso (я сделал это, чтобы проверить «хорошо известный» ISO)

создать пользовательский grub.cfg

 #Begin /boot/grub2/grub.cfg set default=0 set timeout=10 set root=(hd0,1) menuentry 'CentOS-Live-GNOME' { set isolabel=CentOS-7-x86_64-GNOME-1603-02 set isofile='/boot/iso/CentOS-7-x86_64-GNOME-1603-02.iso' loopback loop $isofile linux (loop)/isolinux/vmlinuz0 iso-scan/filename=$isofile root=live:CDLABEL=$isolabel ro rd.live.image quiet rhgb initrd (loop)/isolinux/initrd0.img } 

Скопируйте этот поэтапный vmdk в другой каталог на хосте, который будет использоваться другой виртуальной машиной (назовите его VMDK_ISO_Booter) Создайте виртуальную машину и используйте этот vmdk как единственный жесткий диск

Он заканчивается подсказкой dracr и говорит, что /dev/disk/by-label не может быть найден

Проблема почти наверняка связана с использованием некорректного CDLABEL, grub, который не может монтировать iso, аргументы ядра не соответствуют тем, которые предназначены для использования с изображением, или есть некорректность с ISO – я не использовал см. это на зеркале.

Вам нужно взять точную метку из файла isolinux.cfg, который находится на iso

Если у вас есть CentOS-7-x86_64-LiveGNOME-1603-02.iso, строка в файле:

  append initrd=initrd0.img root=live:CDLABEL=CentOS-7-x86_64-GNOME-1603-02 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 

Вот модифицированный grub.cfg, чтобы попробовать (на основе ISO, который у меня есть, у вас могут быть немного разные, они, по-видимому, отбросили часть «Live» этого имени, или вы это сделали.

 menuentry "CentOS-Live-GNOME" { set isolabel="CentOS-7-x86_64-GNOME-1603-02" set isofile="/boot/iso/CentOS-7-x86_64-LiveGNOME-1603-02.iso" insmod iso9660 loopback loop ${isofile} linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-x86_64-GNOME-1603-02 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile} initrd (loop)/isolinux/initrd0.img } 

Это может работать так, как есть, но дважды проверьте метку и остальные аргументы ядра на запись isolinux.cfg.

Когда / Если вы получаете приглашение dracut, grep файл sosreport.txt для слова «loop» – он должен дать фактическое имя, представленное iso; и вы можете сделать коррекцию. Также взгляните на устройства на / dev; вы можете найти устройство iso в любом месте в / dev / disk / … by-id .. by-label .. by-uuid и т. д. Любая из этих ссылок будет работать. Это должно быть идеальное совпадение; вот что оценивается и откуда приходит ошибка, которую вы получаете.

Я сделал почти то, что вы делаете, но с Fedora некоторое время назад (fedora 19?), И он немного подстраивался, пока не сработало.

Следующая ссылка показывает вам сделать это вручную (несколько), чтобы вы могли пройти, а не проходить через болезненный процесс регенерации, перезагрузки, повтора.

https://help.ubuntu.com/community/Grub2/ISOBoot

Я не понимаю, почему это так много неприятностей. Ваш выглядит как еще один пример проблемы XY . Более простое решение:

  1. Скачайте CentOS iso отсюда ;

  2. Установите CentOS из iso в новую виртуальную vdmk , практически в любом Hypervisor: например, я только что использовал VirtualBox (убедитесь, что вы выбираете vdmk для формата диска при создании новой виртуальной машины); Кроме того, убедитесь, что вы перезагрузите виртуальную машину не менее двух раз, чтобы пройти весь процесс установки. Отключите виртуальную машину CentOS.

Вы закончили: диск vmdk на котором вы установили CentOS, если вы все сделали правильно, уже содержит раздел с установленным флагом загрузки. Теперь вы можете монтировать вновь созданный диск vmdk в качестве жесткого диска с контроллером SATA во второй виртуальной vmdk и, возможно, в другом гипервизоре (VMWare, Xen, вы его называете). Если вы хотите загрузиться с диска CentOS во второй виртуальной машине, просто убедитесь, что порядок загрузки позволяет загружать сначала с нового диска, то есть на созданную в CentOS.

Изменения в grub.cfg в силу, выполнив следующую команду:

 grub2-mkconfig -o /boot/grub2/grub.cfg 

Обычно я пишу свой собственный XML для виртуальных машин qemu / virsh, но идея состоит в том, чтобы сказать, что виртуальная BIOS загружается из ISO, не так ли? Итак, когда вы настраиваете свою виртуальную машину, скажите, что ISO – это компакт-диск, дайте ему пустой файл на хосте, чтобы он работал как жесткий диск для установки, и установил порядок загрузки, чтобы попробовать жесткий диск, затем CD-ROM. Затем загрузите виртуальную машину и следуйте инструкциям на экране для нормальной установки.

Установку поместит grub на виртуальный жесткий диск для вас.

IMHO, VMware делает вещи более загадочными, чем они должны быть.