目录
0 初衷
SSD空间128G不大,又想装ubuntu,不想浪费宝贵的SSD空间,装在SD卡中既可以不占用SSD,由作为一个单独的系统
0 先上图
安装好的Ubuntu 😃
1 遇到的主要困难
- 百度太垃圾,根本找不到相关介绍
- 很多对于装在sd卡之后的引导介绍不详细,根本起不来
所以本文主要说一下,安装后引导的问题。即如何从sd卡启动系统
2 工具
- 1 micro SD卡一张,大一点(128G) ,A2读写性能要好
- 2 U盘一个
- surface pro3 一台
3 准备
- 1 下载ubuntu 18.04.4其他的也可以
- 2 制作启动U盘,推荐rufus。
- 3 将sd卡插入surface,并将sd卡做成虚拟磁盘挂到C盘(这个制作虚拟磁盘可以跳过,但是可以避免每次启动win弹出格式化框框)
- 4 设置USB先启动
- 5 secure boot禁止(开机会变红奥)
4 安装ubuntu到SD卡
插入U盘,SD卡,
重启后,在GRUB选择install ubuntu,然后一路走,,,,
在更新和其他软件中,选择最小安装,加快安装速度。
在安装类型中,选择其他选项
选中SD卡的那个磁盘,划分EFI系统分区、SWAP分区、\分区、\home分区(完了之后最好拍个照片,后面会用到)
在安装启动引导器中选择你刚刚分的EFI分区,然后点击现在安装,弹出选项点击确认就好
完成后面的安装
5 Ubuntu引导设置
重启
确定还是从USB启动
进入到U盘启动盘中的ubuntu系统(不是SD卡中的,是U盘启动盘)
挂载Windows EFI 分区到一个空的文件,同时挂载刚刚创建的安装ubuntu启动器的EFI分区到另一个空文件:
在终端执行下面的代码=>
sudo su
cd /media
mkdir windowsefi
mkdir microsdefi
mount /dev/nvme0n1p1 windowsefi //(根据自己的实际来,这个失败了没关系)
mount /dev/sdb1 microsdefi //(根据自己的实际来)
cd microsdefi
cp -R ../windowsefi/EFI ./
exit
然后,重启,拔掉U盘,就会看到下面的双系统引导:
成功
如果你按照我的步骤成功了,请留言告诉我,我们一起开心;如果失败了,也请留言告诉我,我会在力所能及的范围帮助你。
6 内核打补丁
以后更新
请参考:github: linux-surface
7 给内核签名
解决红屏问题。
参考上面github,给打完补丁的内核签名,
8 提高系统流畅度
方法一:
TF卡IO太弱,开太多桌面应用会卡,我们在固态磁盘压出6G空间配合内存来使用,提高性能。
步骤:
- 删除已有的swap分区(如果有的话):
sudo swapoff /分区文件的路径 #可以free看下
sudo rm /分区文件路径
- 借助GParted工具(软件商店有)在固态硬盘压出6G空间,新建linux swap分区,并swapon
- free一下,可以swap看到已经变了。这是临时挂载,想要永久挂载执行下一步
- 修改/etc/fstab文件 (UUID改成自己的, blkid查看)
- swapon -a 重新读入/etc/fstab
方法二:
9之后遇到的问题
- 开机后出现下面图片类似的问题
解决办法:输入fsck /dev/…(红框里的)然后一路yes
最后ctrl+d
参考
https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fblog.hackdesk.com%2Frunning-ubuntu-on-micro-sd-card-on-surface-pro-4-dfe9e38e17e1
https://www.jianshu.com/p/54d9a3a695cc
更新1(系统迁移到SSD)
2021 - 1月20日更新
由于surface 屏幕太小以及我的surface内存太小,实在不方便搬砖(没钱换新的,哭),打算给老本加个8G内存焕发第二春。但是surface上的Ubuntu系统我已经调教的很好了,不舍得在重新装系统,重新折腾,所以打算将surface中的Ubuntu18迁移到老本的固态上。双线使用。
准备
- surface上的Ubuntu系统
- Gparted 分区工具
- 外接硬盘盒,通过USB将SSD连接到PC
- 确定另一台电脑是否支持 UEFI
我的电脑比较老了,不支持UEFI,所以选择的是 Bios + GPT
详细步骤参考 参考2,写的非常棒。grub是非常重要的一环,可以看一下 参考3,介绍的很详细。
系统已经成功完成迁移,下面介绍过程中踩得的坑:
主要是参考 参考2完成的
- 坑1:参考2的grub-install 的有一个参数写错了(我觉得),应该是
--boot-directory=
- 坑2:参考2的数据复制部分,尤其是/分区的复制,除了不要复制和需要的手动创建的目录,/下的目录最好都复制过去,/lib 别忘了
- 坑3:参考2的grub引导修复部分,那个命令
linux /vmlinuz-XXXXX ro root=/dev/xxx
,中的root没有说的很清楚,root指的整个文件系统/所在的分区,不太好确定,最好移除电脑上的其他的硬盘,U盘啥的,这样一般就是/dev/sdaX, X就是固态的第几个分区 - 坑4: 最开始的时候我是划分/boot分区的,后来会进入grub rescue, 然后就没有划分/boot分区,如果不划分/boot分区,许多步骤将和参考2不同。建议先按照参考2,不行再换
参考:
1-怎么看电脑是不是UEFI启动|怎么看主板是否支持UEFI模式
2-Ubuntu16-10-迁移到-SSD
3-GRUB (简体中文)
转载请咨询,谢谢 😃