UbuntuToGo——打造属于自己的移动固态热插拔Liniux操作系统

本文写于我的 UbuntuToGo 系统,VScode 编辑器。

前言

暑假末期给自己的戴尔游匣老本子换了西数固态,退役下来的一块 Toshiba 128G 的老固态成了闲置,拿来当移动硬盘总觉得有些浪费。恰好这时候一个室友做了个 WinToGo,“移动硬盘,移动系统,即插即用”,听起来很美妙的样子,便想着可否做个 Ubuntu 的移动版。

网上找了几篇资料给了我不小的启发,也算是顺着上面的教程加上自己的摸爬滚打完成的。

把 Ubuntu16.04 装进移动硬盘的惨痛实战

感谢先驱者的宝贵经验。

准备工作

本文采用 U 盘引导 UEFI 安装的方式,希望虚拟机安装或者想用需要用 Legancy 启动的童鞋请参见这两篇文章:IT 之家学院:制作同时适用于 Legacy/UEFI 的 Ubuntu To Go 启动盘Ubuntu To Go | 制作属于你的随身 Ubuntu 系统盘

  1. 启动 U 盘:一个 32G 的 Ubuntu 系统启动盘(需格式化)
  2. 移动 SSD:一个 128G 东芝的 SSD+硬盘盒(买壳子注意 M.2 接口类型以及支持协议,老的 SSD 并不是 NVMe 协议的,原理上只需要盘中有未分配空间即可,实操中建议先行备份以防杯具)
  3. Ubuntu 系统镜像文件:Ubuntu 桌面下载 18.04.3 LTS
  4. 启动盘制作软件 Rufus:官网下载Rufus3.8
  5. 你的脑子
Ubuntu_1
Ubuntu_1
Ubuntu_2
Ubuntu_2

制作启动盘

下载好我们需要的镜像文件后,插入 U 盘,进行刻录(下图中是以硬盘为例,具体使用时无需点选显示外接硬盘,选择对应 U 盘即可)

Ubuntu_3
Ubuntu_3

安装 Ubuntu

选择试用 Ubuntu 系统

完成启动 U 盘制作后重启,进入 BIOS 界面(品牌机子 logo 处按对应键,一般为 F2,F9,F12 等,自行查手册),然后选择引导为 UEFI 并选择 Secure Off。

然后选择 U 盘启动项,grub 菜单选择 Try Ubuntu(试用 Ubuntu),进入试用的 Ubuntu 18.04 主界面。桌面上应该有一个 Install,这样操作的原因是为了避免直接安装 Ubuntu 过程中采用默认方案与原 Windows 整合 EFI 导致拔出硬盘后无法启动,且分区无法调整。

Ubuntu_4
Ubuntu_4

Gparted 分区调整确认

建议使用试用系统上自带的分区调整工具:Gparted 进行分区的调整,如对 SSD 移动硬盘划分空闲区域与分区,确认设备名称等(sdx/nvmex)。

已经安装完成的系统好像并不能启动 Gparted(实际上是我不会),就不放图了。

自定义安装 Ubuntu

双机桌面的 Install Ubuntu,进入安装,网速差的建议不联 Wifi 进行安装,后续换源后提速再安装其他必要包(比如语言包)。

建议选择英文,避免命令行、文件路径出现一些迷之错误。

Ubuntu_5
Ubuntu_5
Ubuntu_6
Ubuntu_6

记得选择其他方式安装,不与现有系统(Windows)整合或者格式化当前系统盘。

(后面几张图来源于网络)

Ubuntu_7
Ubuntu_7

挂载分区

由于我们不需要通过 Legency 模式启动,无需考虑/boot,在安装过程中直接挂在分区即可。

在随后的这个界面中,假设/dev/sda 是你的想要安装系统的移动盘,选中其下的所有盘符,点击下面的“-”删去不需要的分区(相当于格式化),然后点击 free space,点击下面的“+”,按下图挂载三个 partition:

  1. 交换分区(建议 8G 与内存大小相同)

    swap,主分区

    操作系统里面讲的留在硬盘里换入换出的交换区。

    Ubuntu_9
    Ubuntu_9
  2. 根目录(“/”,建议 10-50GB)

    ext4,主分区

    空间有充分盈余的话可以考虑多给一些,毕竟是 SSD 固态速度不会很慢,而且 10G 装软件真的不够用,如果后续还需要添加空间只能通过外置硬盘引导开机然后重新调整分区方式了

    Ubuntu_8
    Ubuntu_8
  3. home(“/home”,建议 30-50GB)

    ext4

    储存各种用户文件,建议分配较多空间。

    Ubuntu_10
    Ubuntu_10

由于介质是固态硬盘,除了交换分区外,格式均无需拘泥于 FAT32,建议选择 ext4,亲测可行。

注意点

  1. 最下方“Device for boot loader installation”,选择你的移动硬盘(不要误选,且不要选择成后面的分区)

启动引导修复

安装完后重启进入 BIOS,启动项多了 ubuntu 一项,点选后正常进入 ubuntu 系统,但是插在其他电脑上并不能像 U 盘一样被检测识别。

用 DiskGenuis 观察 U 盘启动盘与移动硬盘系统不同,发现移动硬盘并无 EFI 分区(如果分区时分了 EFI,应该会发现该分区为空)。

启动盘启动

在本系统运行下无法修复引导,老样子通过 U 盘启动盘选择 Try Ubuntu 进入系统。

ctrl+alt+T打开终端,输入以下命令:

1
2
3
sudo add-apt-repository 最上方ppa:yannubuntu/boot-repair最上方
sudo apt-get update最上方
sudo apt-get install boot-repair

安装 boot-repair 工具(由于源的问题下载可能会很慢)

安装后打开 boot-repair

Ubuntu_11
Ubuntu_11

选择 Recommended repair,修复完成即可。

这时候关机拔下硬盘就可以在其他机器的 BIOS 识别并运行了。返回 Windows 系统使用 DiskGenius 分析发现 EFI 分区填充部分内容。

其他常见问题

显卡驱动问题

在使用两次后发现插入现在用的 Dell 笔记本和部分笔记本,进入用户登陆密码界面输入密码正确后,鼠标卡住,短暂黑屏后自动关机,无法进入系统。

查阅部分资料后发现大概率为显卡驱动(主要是 Nvida 笔记本独显与原装的开源驱动不适配导致的)。

修复方法如下

Ubuntu高级模式启动

这个模式貌似可以忽略显卡驱动的问题(怪不得分辨率小的可怜),BIOS选择ubuntu启动后,进入界面按ESC(或者默认情况)进入grub界面,选择Ubuntu高级模式(常为第二个)。

正常输入密码后进入系统,若此方法行不通请自行查找单用户模式等进入方法。

更换驱动

软件和更新(Software & Updates)-> 附加驱动(Additional Drivers)

改用nvidia-driver-390驱动。

Ubuntu_12
Ubuntu_12

更新后重启进入ubuntu系统,输入密码后正常进入系统

Terminal乱码问题

常发生在换用zsh和oh-my-zsh后乱码。

安装必须字体,从设置(Setting)-> 地区和语言(Region & Language)更改一下language和formats然后改回来即可。

拔出硬盘后默认系统不能启动

从BIOS修改启动顺序,将Windows(原系统)调整到最上方。