У меня проблема при загрузке Deepin ISO с grub2 с USB. Я пытаюсь решить проблему почти неделю. Вот этот grub.cfg
# GLEE USB GRUB2 Configuration
# Required with MBR for GUI
if [ "${grub_platform}" = "pc" ]; then
insmod vbe
fi
# Required with EFI for GUI and to prevent "No video mode set" error
if [ "${grub_platform}" = "efi" ]; then
insmod efi_gop
fi
# Keep the same graphic mode for kernel booting (passed as vga=)
# other values are "text" or any gfxmode value
set gfxpayload=keep
# Enable GUI
#GRUB_FONT=/boot/grub/fonts/unicode.pf2
if loadfont /boot/grub/fonts/unicode.pf2 ; then
insmod gfxterm
terminal_output gfxterm
fi
#EFI: special characters (lines composing menu frame)
#replaced by '?' in text _fallback_ text mode if absent
# (useless if gfxterm is not enabled or if GUI theme loading success)
#loadfont ascii
insmod png
set theme=${prefix}/themes/Vimix_+_Atomic/theme.txt
set isopath=/boot/iso
# Required to have these available in other configfile files
export theme
export isopath
# Menu!
if [ -e ${isopath}/antergos ]; then
menuentry "Antergos >" --class antergos {
configfile "${prefix}/inc-antergos.cfg"
}
fi
if [ -e ${isopath}/antix ]; then
menuentry "antiX >" --class antix {
configfile "${prefix}/inc-antix.cfg"
}
fi
if [ -e ${isopath}/arch ]; then
menuentry "Arch Linux >" --class arch {
configfile "${prefix}/inc-arch.cfg"
}
fi
if [ -e ${isopath}/bodhi ]; then
menuentry "Bodhi Linux >" --class bodhi {
configfile "${prefix}/inc-bodhi.cfg"
}
fi
if [ -e ${isopath}/centos ]; then
menuentry "CentOS >" --class centos {
configfile "${prefix}/inc-centos.cfg"
}
fi
if [ -e ${isopath}/clonezilla ]; then
menuentry "Clonezilla >" --class clonezilla {
configfile "${prefix}/inc-clonezilla.cfg"
}
fi
if [ -e ${isopath}/debian ]; then
menuentry "Debian >" --class debian {
configfile "${prefix}/inc-debian.cfg"
}
fi
if [ -e ${isopath}/deepin ]; then
menuentry "Deepin >" --class deepin {
configfile "${prefix}/inc-deepin.cfg"
}
fi
if [ -e ${isopath}/doudoulinux ]; then
menuentry "DoudouLinux>" --class doudoulinux {
configfile "${prefix}/inc-doudoulinux.cfg"
}
fi
if [ -e ${isopath}/elementary ]; then
menuentry "elementary OS >" --class elementary {
configfile "${prefix}/inc-elementary.cfg"
}
fi
if [ -e ${isopath}/fedora ]; then
menuentry "Fedora >" --class fedora {
configfile "${prefix}/inc-fedora.cfg"
}
fi
if [ -e ${isopath}/gparted ]; then
menuentry "GParted >" --class gparted {
configfile "${prefix}/inc-gparted.cfg"
}
fi
if [ -e ${isopath}/grml ]; then
menuentry "Grml >" --class grml {
configfile "${prefix}/inc-grml.cfg"
}
fi
if [ -e ${isopath}/ipxe ]; then
menuentry "iPXE >" --class ipxe {
configfile "${prefix}/inc-ipxe.cfg"
}
fi
if [ -e ${isopath}/kali ]; then
menuentry "Kali >" --class kali {
configfile "${prefix}/inc-kali.cfg"
}
fi
if [ -e ${isopath}/linux-mint ]; then
menuentry "Linux Mint >" --class linux-mint {
configfile "${prefix}/inc-linux-mint.cfg"
}
fi
if [ -e ${isopath}/manjaro ]; then
menuentry "Manjaro >" --class manjaro {
configfile "${prefix}/inc-manjaro.cfg"
}
fi
if [ -e ${isopath}/netrunner ]; then
menuentry "Netrunner >" --class netrunner {
configfile "${prefix}/inc-netrunner.cfg"
}
fi
if [ -e ${isopath}/porteus ]; then
menuentry "Porteus >" --class porteus {
configfile "${prefix}/inc-porteus.cfg"
}
fi
if [ -e ${isopath}/rhel ]; then
menuentry "Red Hat Enterprise Linux >" --class rhel {
configfile "${prefix}/inc-rhel.cfg"
}
fi
if [ -e ${isopath}/sabayon ]; then
menuentry "Sabayon >" --class sabayon {
configfile "${prefix}/inc-sabayon.cfg"
}
fi
if [ -e ${isopath}/sysrescd ]; then
menuentry "System RescueCD >" --class sysrescd {
configfile "${prefix}/inc-sysrescd.cfg"
}
fi
if [ -e ${isopath}/tails ]; then
menuentry "Tails >" --class tails {
configfile "${prefix}/inc-tails.cfg"
}
fi
if [ -e ${isopath}/ubuntu ]; then
menuentry "Ubuntu >" --class ubuntu {
configfile "${prefix}/inc-ubuntu.cfg"
}
fi
if [ -e ${isopath}/ubuntumate ]; then
menuentry "Ubuntu MATE >" --class ubuntumate {
configfile "${prefix}/inc-ubuntumate.cfg"
}
fi
if [ -e ${isopath}/xubuntu ]; then
menuentry "Xubuntu >" --class xubuntu {
configfile "${prefix}/inc-xubuntu.cfg"
}
fi
if [ -e /KERNEL ]; then
menuentry "OpenELEC >" --class openelec {
configfile "${prefix}/inc-openelec.cfg"
}
fi
menuentry "Shutdown" --class shutdown {
halt
}
menuentry "Restart" --class restart {
reboot
}
Теперь ISO, который я пытаюсь загрузить, это "Deepin", меню
if [ -e ${isopath}/deepin ]; then
menuentry "Deepin >" --class deepin {
configfile "${prefix}/inc-deepin.cfg"
}
fi
Вот файл конфигурации для inc-deepin.cfg
# Deepin
if cpuid -l; then
menuentry "Deepin Live 15.5 amd64" --class deepin {
set isoname="deepin-15.5-amd64.iso"
set isofile="${isopath}/deepin/${isoname}"
echo "Using ${isoname}..."
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live iso-scan/ask_second_pass=true findiso=${isofile}
initrd (loop)/live/initrd.lz
}
Эта установка работает (уже проверено 3-4 раза) с ubuntu grub2, который является загрузчиком по умолчанию, который поставляется вместе с ubuntu (я использовал его, чтобы проверить, связана ли проблема с самим сценарием или нет). (добавив пункт меню (Deepin) в файл 40_custom в /etc/grub.d.
Когда вышеуказанная настройка используется с загрузкой по USB, она выдает ошибку ниже
error: out of memory
error: syntax error
error: Incorrect command
error: syntax error
Эта ошибка также возникает при попытке загрузки с memdisk. Как я могу это исправить?
Что я думаю до сих пор ...
- Проблема не может быть связана с размером или оперативной памятью. Так как эта настройка работает, когда используется ubuntu grub для тестирования, и не работает при использовании usb для загрузки iso.
- Поскольку ОС Deepin основана на Debian, я предполагаю, что файл конфигурации загрузки совпадает с Debian.
- Я использовал эту команду при установке grub на USB
`
GRUB_TARGET="--target=x86_64-efi --efi-directory=${MOUNT_POINT}
--removable"
GRUB2_INSTALL="grub2-install"
MOUNT_POINT=/media/microsoft10/MMI
PARTITION=/dev/sdb1
sudo ${GRUB2_INSTALL} ${GRUB_TARGET}
--boot-directory=${MOUNT_POINT}/boot ${PARTITION}`