文章目录
说明
UEFI和Legacy双模式引导参见: https://www.ithome.com/html/win10/316637.htm
准备
硬件
- 一个空U盘用于安装系统时的启动盘
- 一个空U盘或移动硬盘用于安装系统
- 一台装有Ubuntu系统的电脑(本文 16.04 LTS)
软件
- Ubuntu系统镜像
启动盘制作
-
BIOS模式: 参考本人另一篇博客 U盘系统盘制作与系统安装(详细图解)
-
UEFI模式: 直接将Ubuntu系统镜像文件解压到U盘即可.
安装Ubuntu到随身存储设备
概述
- U盘启动系统后, 选择 “Install Ubuntu”
- 在安装类型(Install Type)界面一定要选择 其它(some thing else) 选项, 以便选择将系统安装到便携设备
- 创建分区, 若为 UEFI 模式, 需要创建一个
EFI
分区, 设为500Mb
即可, 此外还需要创建swap
交换分区, 大小2GB即可, 还可以创建根分区/
启动分区/boot/
home
分区, 当然也可以不创建. - 在创建分区的页面, 记得 选择安装启动引导器为你想随身携带系统的移动硬盘或U盘, 否则默认覆盖你现有PC机上的引导菜单(Ubuntu16好像有Bug, 即使选择了别的盘, 还是会覆盖之前的, 好在可以修复). 此部分可参考本人博客 U盘系统盘制作与系统安装(详细图解)
- 安装完成后, 重启可能并不能进入系统, 参考如下内容操作.
为便携式系统创建GRUB引导
插上安装了系统的U盘, 启动 原來的系统 , 拔掉启动盘.
安装 GRUB2 到U盘或移动硬盘
其中, xy
为EFI分区所在盘号
# 安装依赖包
sudo apt-get install grub-efi-amd64-bin grub-pc-bin
# 挂载EFI分区
mkdir /mnt/tmp
sudo mount /dev/sdxy /mnt/tmp
# 将 BIOS 模式 GURB2 安装到U盘
sudo grub-install --target=i386-pc --recheck --boot-directory=/mnt/tmp/boot /dev/sdxy
# 将 UEFI 模式 GURB2 安装到U盘
sudo grub-install --target=x86_64-efi --efi-directory=/mnt/tmp/ --boot-directory=/mnt/tmp/boot --removable
制作Grub引导菜单
仿造已有的系统内的 grub.cfg
写即可, 使用 sudo gedit /mnt/tmp/boot/grub/grub.cfg
新建配置文件并打开, 添加类似如下的内容
if [ "${grub_platform}" == "efi" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root $hints_string $fs_uuid
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
fi
if [ "${grub_platform}" == "pc" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1/10 BIOS-MBR" {
insmod part_msdos
insmod ntfs
insmod search_fs_uuid
insmod ntldr
search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 69B235F6749E84CE
ntldr /bootmgr
}
fi
问题与解决
拔掉U盘进不了原来的系统
插上安装了系统的U盘, 启动 原來的系统 , 拔掉启动盘, 通过如下命令更新grub, 并将其安装到目标的盘(sdx
), 注意你的盘号.
# 生成新的启动镜像
sudo update-initramfs -u
# 更新grub
sudo update-grub
sudo update-grub2
# 重建grub
sudo grub-install /dev/sdx
随身系统无法在别的电脑上启动
- 首先查询该电脑支持什么模式
BIOS
还是UEFI
, 确认与自己的系统安装模式是否兼容 - 然后检查 为便携式系统创建GRUB引导 小节所述内容
welcome to emergency mode
若在其它电脑上启动出现 welcome to emergency mode
提示信息, 分别 通过 sudo blkid
和 cat /etc/fstab
查看所有列出的盘号是否一致, 重点关注 fstab文件中是否有多余的盘, 如有, 使用 #
注释掉即可.