更新:对于ubuntu 22.04,你可以直接使用这个方式安装,并且无需进行挂载分区操作,所有的东西都是自动的。
20.04会出现无法挂载cdrom的情况,原因未知。
如果你是双硬盘,那可以放心去做了,都是一样的。
最近闲来无事,重新拾取了我在闲鱼的小副业——帮人装Linux双系统,象征性的收一点费用,以期挣点奶茶钱,同时也希望能通过我的努力,让一些入门者少走一些弯路。
服务的客户多了,碰到一些奇奇怪怪的组合和需求,比如有Linux to go的(还算正常,可是你要调nvidia独显炼丹啊??); 有啥都不懂,拿虚拟机分区直接往物理机上套,然后把Windows的引导扬了的;有第一次接触Linux,就直接要systemd-boot的;今天碰到的这个干脆连U盘都不给了......
没U盘?没U盘咋装啊?开始想直接用VMware直接往分区写东西,但是操作的权限又仅限于选中的那个分区,且无法挂载EFI分区,那还玩个锤子?
不过,只要思想不滑坡,方法总比困难多......
一、准备
要安装一个系统,安装镜像总得要有吧?先去下一个。
然后打开rufus,写启动...盘,哦对了,这次没有U盘...
跳过
...
二、原理
现在的电脑,基本都是UEFI+GPT的启动方式,当你按下电源键的那一刻,电脑的uefi固件会先初始化电脑硬件相关的信息,为之后启动操作系统做准备。
UEFI(统一可扩展固件接口)是一个公开的规范,定义了操作系统和平台固件之间的软件接口。UEFI 是传统 PC BIOS 的继承者,旨在解决其技术限制。
它将引导数据存储在 .efi 文件中,而不是固件中。你经常会在新款的主板中找到 UEFI 启动模式。UEFI 启动模式包含一个特殊的 EFI 分区,用于存储 .efi 文件并用于引导过程和引导加载程序。
所以,这时候,问题就变成了:如何把你下载的系统镜像里的efi文件提取出来,并放到硬盘的EFI分区里,让uefi固件可以识别到并加载起来。
那这就简单了,开整!
三、分区和实践
正常情况下,如果你通过rufus来创建启动U盘,你会得到一个有着FAT32格式的分区,以及安装所需要的文件。
所以我们也如法炮制,先在自己的硬盘上创建一个FAT32格式的分区,大小要能放得下安装镜像,比如给个8G左右。
就像这样:
在这个操作可以在Windows自带的磁盘管理器中进行,关键词是压缩卷和新建简单卷。
然后打开Debian的ISO安装镜像:
把里面的文件全都复制到刚才创建的FAT32分区里。
然后重启,改启动项就能看到有启动项了,记得关掉快速启动和安全启动。
到这里,不出意外你就能进入Debian的安装界面了。
四、安装时的修改
等安装界面跑起来后,不出意外的就出意外了。
不过这个是意料之中的,因为你确实没有可移动介质,也许可以通过改默认的挂载位置,但是这样多少有些麻烦。(主要是我不知道怎么改)
所以,别慌,我们选“否”,取消掉它,然后你会看到这个界面:
既然默认的不存在,那我们就手动把分区挂载过去。
选择上面的“运行shell”
这时候就会进入ash,输入ls,你会看到有这些目录/文件:
可以看到,这里有一个鲜明的cdrom目录,进去后里面是空的。
我们知道,Linux对于分区和设备是以“文件”的形式来看待的,所以直接进入/dev下,输入ls就可以看到你的硬盘分区,他们长这样:
对于分区,如果你是nvme协议的硬盘,那就是nvme0n1pX,如果是sata,那就是sda1、sdb1开头,最后的数字都是表示分区号。
刚才说cdrom目录是空的,如果你还记得你创建的FAT32分区里安装文件的目录格式的话,你会看到一个dists的目录,里面存放的就是一会儿安装所需要的软件包。
默认的cd源,就是从这里开始的,知道了这个,直接把我们的分区挂载到/cdrom即可。
你要记得你的分区号
比如,我的是在第三个分区,那命令就是:
mount nvme0n1p3 /cdrom
这时候你再进cdrom里,就会发现有这些东西了。
输入exit,退出ash,你这时候再探测安装介质就可以正常安装了。
剩下的就不用再说了吧?
五、已知问题
1、在配置apt时会报错。
原因未知,可以直接跳过,然后安装grub即可,这时候你就可以启动一个最小化的系统了。
2、开机后黑乎乎的,没有图形界面,也没法联网。
先说联网问题,如果你在安装时选择了联网,那正常情况下debian会直接将你的网络配置信息写入到/etc/network/interfaces里,这时候你直接换源应该就能正常联网,如果没有,就自己配置一下,然后重启服务。建议插网线,或者用手机的usb网络共享,有了networkmannager后,就可以自动联网了。
为啥黑乎乎?
因为刚才装的是最小化系统,没图形环境。
Debian都没嫌弃你没U盘,自己装个图形界面怎么了?(恼