uefi安装win7,deepin15双系统后grub没有windows选项
Tofloor
poster avatar
873792861
deepin
2015-12-23 01:04
Author
本帖最后由 873792861 于 2015-12-23 16:17 编辑

     如题,首先电脑是GPT+uefi的,电脑上安装有64位的win7。用U盘工具制造好驱动U盘后,在安装时选择 专家模式 ,选择预先分配好的分区挂载上 / 分区,home分区,并格式化,下方引导选择uefi.安装完重启后,grub菜单无windows选项。后来重装deepin选择 引导器  那个选项,选择设备就是整块硬盘,也是没有windows选项的。试过命令:
sudo update-grub  还是没有windows选项。
我之前2014.3安装完是会识别出windows引导项。现在不行,是我的问题还是15 beta的问题呢?


----------------------------------------------------再度尝试---------------------------------------------------------
win7被我改回了win8.1,然后再安装deepin 15,选择 引导器  那个选项,直接进win8.1了,然后再次安装deepin 15,选择uefi,能进deepin了,但没有windows选项。
然后我去修改grub.cfg文件,添加以前ubuntu的备份中有关windows的:
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-B6C4-FB32' {
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then    search --no-floppy --fs-uuid --set=root B6C4-FB32
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

保存重启,选择windows选项,报错,然后过了大约1秒多后进入了windows系统。
留意报错内容:no such devices:B6C4-FB32
我又去修改uuid(ls -l /dev/disk/by-uuid 得到efi分区的uuid)。然而报错can not find file '/EFI/Microsoft/Boot/bootmgfw.efi'。这是怎么回事呢?



Reply Favorite View the author
All Replies
laoguang
deepin
2015-12-23 02:13
#1
把windows的分区挂上,
sudo os-prober
没有os-prober的话apt-get安装
然后再sudo update-grub试试,
不行用手动,

加这个

menuentry "Windows 7" --class windows --class os {
        insmod part_msdos
        insmod ntfs
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 你的uuid
        chainloader +1
}
Reply View the author
变压器
deepin
2015-12-23 02:39
#2
同求,这个问题困扰我几个月了,从2015 a1开始就存在这个问题 ,现在beta了  还是存在。
Reply View the author
变压器
deepin
2015-12-23 02:40
#3
https://bbs.deepin.org/post/34415
把windows的分区挂上,
sudo os-prober
没有os-prober的话apt-get安装

貌似 不管用
lafeng@lafeng-pc:~$ sudo os-prober
[sudo] lafeng 的密码:
lafeng@lafeng-pc:~$ sudo apt-get install os-prober
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
os-prober is already the newest version (1.70).
下列软件包是自动安装的并且现在不需要了:
  fcitx-libs-qt5
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
lafeng@lafeng-pc:~$ sudo update-grub
Generating grub configuration file ...
Found theme: /boot/grub/themes/deepin/theme.txt
Found background image: /boot/grub/themes/deepin/background.png
Found linux image: /boot/vmlinuz-4.3.0-1-amd64
Found initrd image: /boot/initrd.img-4.3.0-1-amd64
Found linux image: /boot/vmlinuz-4.2.0-1-amd64
Found initrd image: /boot/initrd.img-4.2.0-1-amd64
Adding boot menu entry for EFI firmware configuration
done
lafeng@lafeng-pc:~$ menuentry "Windows 7" --class windows --class os {bash: menuentry: 未找到命令
lafeng@lafeng-pc:~$         insmod part_msdos
bash: insmod: 未找到命令
lafeng@lafeng-pc:~$         insmod ntfs
bash: insmod: 未找到命令
lafeng@lafeng-pc:~$         set root='(hd0,msdos1)'
lafeng@lafeng-pc:~$         search --no-floppy --fs-uuid --set=root 你的uuid
bash: search: 未找到命令
lafeng@lafeng-pc:~$         chainloader +1
bash: chainloader: 未找到命令
lafeng@lafeng-pc:~$ }menuentry "Windows 10" --class windows --class os {
bash: }menuentry: 未找到命令
lafeng@lafeng-pc:~$         insmod part_msdos
bash: insmod: 未找到命令
lafeng@lafeng-pc:~$         insmod ntfs
bash: insmod: 未找到命令
lafeng@lafeng-pc:~$         set root='(hd0,msdos1)'
lafeng@lafeng-pc:~$         search --no-floppy --fs-uuid --set=root 1436C3E836C3C946
bash: search: 未找到命令
lafeng@lafeng-pc:~$         chainloader +1
bash: chainloader: 未找到命令
Reply View the author
laoguang
deepin
2015-12-23 02:43
#4
https://bbs.deepin.org/post/34415
貌似 不管用
lafeng@lafeng-pc:~$ sudo os-prober
[sudo] lafeng 的密码:

卧槽,最后那段不是命令!!!!!
Reply View the author
laoguang
deepin
2015-12-23 02:46
#5
是加到grub。cfg的。。。
Reply View the author
变压器
deepin
2015-12-23 02:49
#6
https://bbs.deepin.org/post/34415
卧槽,最后那段不是命令!!!!!

我在计算机里找到了grub.cfg文件打开 里面 一堆 东西 完全不知道你那段 代码加到哪里,那里面都是这样的set root='hd0,gpt7',所以我不敢复制,怕 弄错了 启动不了了
Reply View the author
laoguang
deepin
2015-12-23 02:55
#7
https://bbs.deepin.org/post/34415
我在计算机里找到了grub.cfg文件打开 里面 一堆 东西 完全不知道你那段 代码加到哪里,那里面都是这样的s ...

把内容发过来。
Reply View the author
变压器
deepin
2015-12-23 02:59
#8
https://bbs.deepin.org/post/34415
把内容发过来。

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=1920x1080
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=zh_CN
  insmod gettext
fi
terminal_output gfxterm
insmod part_gpt
insmod ext2
set root='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
fi
insmod gfxmenu
loadfont ($root)/boot/grub/themes/deepin/unifont-regular-16.pf2
insmod png
set theme=($root)/boot/grub/themes/deepin/theme.txt
export theme
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_gpt
insmod ext2
set root='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
fi
insmod png
if background_image /boot/grub/themes/deepin/background.png; then
  true
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
        set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Deepin 15 Beta GNU/Linux' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-88eb2076-723f-4d1d-8194-51519c757e98' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt7'
        if [ x$feature_platform_search_hint = xy ]; then           search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
        fi
        linux        /boot/vmlinuz-4.3.0-1-amd64 root=UUID=88eb2076-723f-4d1d-8194-51519c757e98 ro  splash quiet
        initrd        /boot/initrd.img-4.3.0-1-amd64
}
submenu 'Deepin 15 Beta GNU/Linux 的高级选项' $menuentry_id_option 'gnulinux-advanced-88eb2076-723f-4d1d-8194-51519c757e98' {
        menuentry 'Deepin 15 Beta GNU/Linux,Linux 4.3.0-1-amd64' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.3.0-1-amd64-advanced-88eb2076-723f-4d1d-8194-51519c757e98' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt7'
                if [ x$feature_platform_search_hint = xy ]; then                   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
                fi
                echo        '载入 Linux 4.3.0-1-amd64 ...'
                linux        /boot/vmlinuz-4.3.0-1-amd64 root=UUID=88eb2076-723f-4d1d-8194-51519c757e98 ro  splash quiet
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.3.0-1-amd64
        }
        menuentry 'Deepin 15 Beta GNU/Linux, with Linux 4.3.0-1-amd64 (recovery mode)' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.3.0-1-amd64-recovery-88eb2076-723f-4d1d-8194-51519c757e98' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt7'
                if [ x$feature_platform_search_hint = xy ]; then                   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
                fi
                echo        '载入 Linux 4.3.0-1-amd64 ...'
                linux        /boot/vmlinuz-4.3.0-1-amd64 root=UUID=88eb2076-723f-4d1d-8194-51519c757e98 ro single
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.3.0-1-amd64
        }
        menuentry 'Deepin 15 Beta GNU/Linux,Linux 4.2.0-1-amd64' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-1-amd64-advanced-88eb2076-723f-4d1d-8194-51519c757e98' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt7'
                if [ x$feature_platform_search_hint = xy ]; then                   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
                fi
                echo        '载入 Linux 4.2.0-1-amd64 ...'
                linux        /boot/vmlinuz-4.2.0-1-amd64 root=UUID=88eb2076-723f-4d1d-8194-51519c757e98 ro  splash quiet
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.2.0-1-amd64
        }
        menuentry 'Deepin 15 Beta GNU/Linux, with Linux 4.2.0-1-amd64 (recovery mode)' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-1-amd64-recovery-88eb2076-723f-4d1d-8194-51519c757e98' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt7'
                if [ x$feature_platform_search_hint = xy ]; then                   search --no-floppy --fs-uuid --set=root 88eb2076-723f-4d1d-8194-51519c757e98
                fi
                echo        '载入 Linux 4.2.0-1-amd64 ...'
                linux        /boot/vmlinuz-4.2.0-1-amd64 root=UUID=88eb2076-723f-4d1d-8194-51519c757e98 ro single
                echo        '载入初始化内存盘...'
                initrd        /boot/initrd.img-4.2.0-1-amd64
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
        fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Reply View the author
变压器
deepin
2015-12-23 03:00
#9
https://bbs.deepin.org/post/34415
把内容发过来。

win10 在 gpt4
Reply View the author
laoguang
deepin
2015-12-23 03:13
#10

在export linux_gfx_mode后面加

menuentry "Windows 7" --class windows --class os {
        insmod part_gpt
        insmod ntfs
        set root='hd0,gpt4'
        search --no-floppy --fs-uuid --set=root (这个地方你要到gparted里面去看windows分区的uuid再填)
        chainloader +1
}
Reply View the author
变压器
deepin
2015-12-23 03:51
#11
https://bbs.deepin.org/post/34415
在export linux_gfx_mode后面加

menuentry "Windows 7" --class windows --class os {

添加了之后,grub上有了win选项,但是进不去win系统,点击之后 闪一下就没了 还是 选择系统的界面,估计指向没弄对
Reply View the author
变压器
deepin
2015-12-23 04:08
#12
https://bbs.deepin.org/post/34415
在export linux_gfx_mode后面加

menuentry "Windows 7" --class windows --class os {

gpt4 win分区的uuid是Half new UUID - will be randomly generated)
Reply View the author
变压器
deepin
2015-12-23 04:25
#13
https://bbs.deepin.org/post/34415
在export linux_gfx_mode后面加

menuentry "Windows 7" --class windows --class os {

我是双硬盘,不知道有没有关系
Reply View the author
laoguang
deepin
2015-12-23 06:48
#14
主要是uuid!!!
Reply View the author
dsp
deepin
2017-06-15 19:10
#15
https://bbs.deepin.org/post/34415
主要是uuid!!!

前辈,麻烦您能不能整理一下您的资料呢,您的帖子被别人引用后,别人语焉不详,找到这篇帖子后依然有点碎片化,搞得我们小白很蒙蔽啊,麻烦您整理下,或者写篇博客^_^
Reply View the author
laoguang
deepin
2017-08-13 23:45
#16
https://bbs.deepin.org/post/34415
前辈,麻烦您能不能整理一下您的资料呢,您的帖子被别人引用后,别人语焉不详,找到这篇帖子后依然有点碎 ...

我也很懵逼,我都很久不玩grub了,现在也不再用深度了,只不过偶尔回来冒个泡儿。。。
[email protected](有啥事儿给我发个email,具体跟我说说什么问题)
Reply View the author