deepin 与 Windows 双系统硬盘安装方法总结
Tofloor
poster avatar
走钢丝
deepin
2019-09-05 19:06
Author
本帖最后由 lidanger 于 2019-10-12 23:20 编辑

本文主要是网上搜索到的信息经过多次试验得到的结果,文末包含部分 U 盘安装工具的测试。另外,UEFI 模式下安装 deepin 时发现,deepin 15.11 对 efi 分区的要求没那么高,300 M 足够了。


测试环境

操作系统:deepin 15.11
宿主环境:主要为 VirtualBox 虚拟机,部分为物理机(戴尔笔记本)。

deepin 中安装 deepin

可以直接通过 grub2 引导 ISO 文件:

  • 将 ISO 文件放在非安装分区
  • 修改 /etc/grub.d/40_custom,在最后添加引导菜单定义
  • 终端执行 sudo update-grub,更新 grub 引导项

其中 /etc/grub.d/40_custom 中添加的内容如下:

Legacy 模式

直接安装

  1. menuentry 'deepin installer' {
  2.     set root=(hdx,y)
  3.     set isofile="/deepin-15.11-amd64.iso"
  4.     loopback loop $isofile
  5.     linux (loop)/live/vmlinuz findiso=${isofile} boot=live components quiet splash union=overlay livecd-installer locales=zh_CN.UTF-8
  6.     initrd (loop)/live/initrd.lz
  7. }
Copy the Code

failsafe 模式

  1. menuentry 'deepin installer' {
  2.     set root=(hdx,y)
  3.     set isofile="/deepin-15.11-amd64.iso"
  4.     loopback loop $isofile
  5.     linux (loop)/live/vmlinuz findiso=${isofile} boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal union=overlay locales=zh_CN.UTF-8
  6.     initrd (loop)/live/initrd.lz
  7. }
Copy the Code

这里默认为 MBR 分区表,如果为 GPT,菜单项定义第一行应为 set root=(hdx,gpty)。其中 x 从 0 开始,y 从 1 开始。即第一个块硬盘第一个分区。具体的可以在重启出现 grub 菜单时按 c 键进入控制台,输入命令 ls 即可得知。
第二行,以第一行定义的 root 分区为根目录,为 ISO 文件位置定义了一个可复用的变量,此变量在下面两行都有引用。
第四行,内核启动参数参考了 deepin ISO 中 isolinux 文件夹下的 live.cfg 。

UEFI 模式

将 Legacy 模式下内核启动那一行中的 /live/vmlinuz 改为 /live/vmlinuz.efi 即可。

测试结果

当前系统测试系统UEFI 模式Legacy 模式备注
deepindeepin

deepin 中安装 Windows

  • 将 ISO 中的内容复制到某个 ntfs 分区的根目录(似乎 ISO 格式不兼容,所以无法直接引导)。目标分区最好不是安装分区,否则安装后文件会混在一起,不好区分。当然,如果提前截图的话就没问题。安装过程中有冲突的文件会被放到 Windows.old 文件夹中。
  • 修改 /etc/grub.d/40_custom,在最后添加引导菜单定义
  • 终端执行 sudo update-grub,更新 grub 引导项

其中 /etc/grub.d/40_custom 中添加的内容如下:

Legacy 模式

  1. menuentry "Windows Installer" --class windows --class os {

  2.     insmod part_msdos
  3.     insmod ntfs
  4.     insmod ntldr

  5.     set root=(hdx,y)

  6.     ntldr /bootmgr
  7. }
Copy the Code

UEFI 模式

  1. menuentry "Windows Installer" --class windows --class os {

  2.     insmod part_msdos
  3.     insmod ntfs

  4.     set root=(hdx,y)

  5.     chainloader /efi/boot/bootx64.efi
  6. }
Copy the Code

测试结果

当前系统测试系统UEFI 模式Legacy 模式备注
deepinWin 7xxUEFI 到 Starting Windows 就不动了,Legacy 则 Windows Boot Manager 报错
deepinWin 10xLegacy 模式 Windows Boot Manager 报错

重启后会直接进 Windows,似乎看不到 deepin 的引导菜单,但关机后再启动还是会进入 deepin。如果又没有 Windows 的引导项,可以在终端执行 sudo update-grub,更新下引导项,就出现 Windows 的引导项了。

Windows 中安装 deepin

  • 将 ISO 文件以及其中的 initrd.lz 和 vmlinuz 文件复制到 C 盘(非安装分区,非 C 盘也是可以的,但修改起来麻烦)根目录。
  • 下载 grub4dos,将其中的 grldr、menu.lst(可自建)放到 C 盘根目录。
  • XP 在 c:\boot.ini 中添加 x:\grldr="Deepin Installer" 引导项,这里 x 为盘符,如 C 盘。
  • Win7 以上下载 bootice。在 bootice 的 bcd 智能编辑功能中添加一个 grub/linux 引导项,选择启动磁盘和启动分区为当前的 C 盘,将引导内容从 grldr.mbr 改为 grldr 即可。
  • 在 menu.lst 中添加如下内容

Legacy 模式

  1. title deepin installer

  2. root (hdx,y)

  3. kernel /vmlinuz findiso=/deepin-15.11-amd64.iso boot=live components quiet splash union=overlay livecd-installer locales=zh_CN.UTF-8
  4. initrd /initrd.lz
Copy the Code

其中 x 从 0 开始,y 从 0 开始。即第一个块硬盘第一个分区。

UEFI 模式

  • 创建一个临时的 Fat32 分区(非安装分区),将 ISO 文件内容复制到此分区根目录。
  • 下载 bootice。通过 bootice 添加临时分区中的 \EFI\BOOT\BOOTX64.EFI 或 \EFI\BOOT\GRUBX64.EFI 为 UEFI 引导项。
  • 重启开机时按 DEL、ESC 等键进入 UEFI BIOS 设置界面,选中刚才添加的引导项确定即可。

Win 10 下如果需要其他开机启动操作,注意重启时按 Shift,否则可能无法操作。

测试结果

当前系统测试系统UEFI 模式Legacy 模式备注
win xpdeepin-
win 7deepin
win 10deepin若重启后还是进 win 10,可以关机再启动

其他

主要包括收尾工作和 grub 控制台模式。另外,这里也测试了 deepin 应用商店里的两款 U 盘安装工具。

收尾工作

最后,记得删除 /etc/grub.d/40_custom 中添加的内容,在终端执行 sudo update-grub,消除引导项。

如果添加了临时分区,记得删除并将空间合并到其他分区。

grub 控制台

以上 grub2 菜单定义过程也可以通过进入 grub 界面后(重启电脑会看到这个节面)按 c 进入 grub 控制台,然后一句一句执行 grub 引导命令来实现,而不需要修改 /etc/grub.d/40_custom 文件。如:

  1. insmod part_msdos
  2. insmod ntfs
  3. set root=(hdx,y)
  4. chainloader /iso/efi/boot/bootx64.efi
  5. boot
Copy the Code

深度启动盘制作工具

deepin 官方的 U 盘启动盘制作工具对自家的兼容性肯定是不错的,不过对 Windows 的支持不太好。

当前系统测试系统UEFI 模式Legacy 模式备注
-win 8 pe-x使用的 ISO 文件未集成 UEFI 引导模式
-win xp-x
-win 7x
-win 10x
-deepin
-ubuntu
-fedoraxx都是选择菜单后一片黑,U 盘无读写信号

woeusb

woeusb 主要面向 Windows 系统,所以对 Windows 的支持比较好。但比较逗逼的是,制作启动 U 盘时不会自动卸载磁盘,需要手动卸载才能继续下去。

当前系统测试系统UEFI 模式Legacy 模式备注
-win 8 pe-使用的 ISO 文件未集成 UEFI 引导模式
-win xp-x
-win 7
-win 10
-deepinx
-ubuntux
-fedoraxxUEFI 模式选择菜单后一片黑,U 盘无读写信号

UEFI 模式因为是通用的,看起来都支持得不错。

Reply Favorite View the author
All Replies
2 / 2
To page
走钢丝
deepin
2019-11-21 00:02
#21
https://bbs.deepin.org/post/182429
如果把ISO文件事先解压到临时盘可以吗?还是必须把ISO文件作为一个单体文件拷贝进去 ...

当然是整个拷进去了。。解压理论上也是可以的,不过文中是这么搞的,你要用解压的方法可能需要自己折腾了。
Reply View the author
abaca
deepin
2019-11-21 00:20
#22
我是解压放在零时盘,能够引导准备安装,遇到的问题和用U盘安装遇到的情况一样,都是报错然后停止在哪里。报错信息如下:
Error:Driver pcspkr is already geristered,aborting.

百度出的解决方法认为显卡有问题,解决办法是在开始出现deepin 安装界面时,按E键进入编辑界面,在
linux  /boot/vmlinuz........./quite splash 之后增加一句
acpi_osi=!  acpi="windows 2009"

然后按F10键继续。我这里还是还是报这个错。
Reply View the author
走钢丝
deepin
2019-11-21 01:04
#23
https://bbs.deepin.org/post/182429
我是解压放在零时盘,能够引导准备安装,遇到的问题和用U盘安装遇到的情况一样,都是报错然后停止在哪里。 ...

我也没招,网上搜不到这个型号电脑安装 deepin 的相关信息。
Reply View the author
走钢丝
deepin
2020-03-25 00:31
#24
UEFI 模式下最简单的方法是在磁盘上新建一个 fat32 的临时分区,然后把安装盘 ISO 的内容解压到分区根目录,重启开机时按 F12 即可看到引导菜单了。
Reply View the author
bird1981
deepin
2020-03-31 00:23
#25
菜鸟学习了,谢谢
Reply View the author
2 / 2
To page