1 ubuntu 20.04 arm64 准备工作
-
工具:一个U盘用作启动盘、SSD卡1、SSD卡2
-
安装环境,使用命令
uname -a
查看电脑架构是amd还是arm。本机是arm架构,如果是x86架构则下载amd镜像文件 -
ubuntu20.4 server arm64下载网址:https://ubuntu.com/download/server/arm
-
将下载的文件刻录到u盘(启动盘制作)
dd if=/home/kylin/ubuntu-21.10-live-server-arm64.iso of=/dev/sdb
if = 需要安装的镜像目录
of = 启动盘的目录
2 安装
- 将启动盘和SSD2插入电脑
- 进入bios,进入电脑时按delete
- 选择引导维护管理,改变引导顺序,将USB调到第一启动项(组合键:shift =),F10保存,退出引导维护管理,选择继续开机。
- 一般下一步即可。
- 安装系统时,注意不要把根目录格式化为LVM,选择ext4
- 注意如果是arm系统可能造成笔记本没有鼠标、键盘和网络驱动,可以外接鼠标键盘和usb转网络驱动。
Tips:详细安装请参考参考资料3
3 移植操作系统
-
按照同样的方式,将SSD1中安装好ubuntu server arm64 21.0系统,并将系统从SSD1移植到SSD2中,SSD2已安装ubuntu 20。
-
安装系统时,注意不要把根目录格式化为LVM,选择ext4
-
SSD2 新分一个区,格式化为ext4,我这里新分区为sda4,这里推荐分区工具
gparted
,下载命令sudo apt install gparted
-
启动原来的操作系统,复制ubuntu server arm64 21.0的根目录到SSD2的sda4分区下,
tar -zcvpf boot.tgz /boot tar -zcvpf boot.tgz /boot
,并解压到新的分区:tar -zxvpf boot.tgz ./
(注意修改自己的目录地址)。(或者使用下载工具sudo apt install nautilus
,并在root
用户下运行) -
根据/etc/fstab 提示,修改
/dev/disk/by-uuid/
和文件类型。可以根据命令blkid查看分区uuid号。# <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda2 during curtin installation /dev/disk/by-uuid/根目录所在分区UUID / ext4 defaults 0 1 # /boot/efi was on /dev/sda1 during curtin installation /dev/disk/by-uuid/'boot/efi'所在分区 /boot/efi 文件类型 defaults 0 1
-
将默认UUID启动改为分区启动
1. 编辑 /etc/default/grub 文件。可以 sudo vi /etc/default/grub 2. 找到 #GRUB_DISABLE_LINUX_UUID=true 这一行 3. 去掉前面的#号。(#号表示这一行是注释,去掉之后,就是让这一行的配置起作用。) 4. 保存退出。 5. 执行 sudo update-grub ( update-grub会更新/boot/grub/grub.cfg文件 )
-
网络配置文件
/etc/netplan/00-intsaller-config.yaml
,network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.myip/22] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]
- enp0s3改为自己的网卡驱动名称,用ip a命令查看
- nameservers为路由地址
-
生成新的启动菜单
# 生成新的启动镜像 sudo update-initramfs -u # 更新grub sudo update-grub sudo update-grub2 # 重建grub sudo grub-install /dev/sdx
-
如果启动还有错误,进入启动菜单项,选择要进入的系统,按e,进入参数页面,检查root或者uuid,镜像文件是否有误,修改后按
Ctrl x
正常启动(一次性启动)。或者进入原系统,检查/boot/efi/boot/grub/grub.cfg
启动菜单,修改后保存即可(永久性修改)。注:执行sudo update-initramfs -u后,又会失效。
4 桌面安装
```sh
1、顺序执行下面命令
apt-get update
sudo apt-get install xinit
sudo apt-get install gdm3
#这个过程可能要很久
sudo apt-get install kubuntu-desktop
#2、安装桌面
sudo apt-get install gnome-core
#3、安装新的软件包管理器
sudo apt-get install synaptic
#4、安装无线上网模块(可选)
sudo apt-get install network-manager*
#5、安装中文支持(可选)
sudo apt-get install language-support-zh
#6、重启
sudo shutdown -r now
#取消GUI(图形界面)启动
update-rc.d -f gdm remove
#重启后便不会自动进入桌面,此时可用 startx 启动桌面
#恢复 GUI 自动启动:
update-rc.d gdm defaults
```
5.内核编译
原系统:
u2kylin@u2kylin-ThinkBook-15-G2-ITL:~$ uname -a
Linux u2kylin-ThinkBook-15-G2-ITL 5.10.0-1051-oem #53-Ubuntu SMP Thu Oct 28 08:11:53 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
u2kylin@u2kylin-ThinkBook-15-G2-ITL:~$
查看cpu是几核。
u2kylin@u2kylin-ThinkBook-15-G2-ITL:/usr/src/linux-5.15.1$ cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
内核编译:
(1) 首先将下载的内核代码解压,并放置在/usr/src
目录下。
(2)下载所需软件:sudo apt-get install libncurses5-dev build-essential kernel-package flex bison libelf-dev libssl-dev
(3):进入新解压的内核主目录(cd ),执行命令:sudo make clean、sudo make mrproper、sudo cp /boot/config-$(uname -r) .config、sudo make menuconfig、sudo make -j8、sudo make modules -j8、sudo make modules_install、sudo make install。
(4)注意1:复制.config之后,打开.config目录,将CONFIG_SYSTEM_TRUSTED_KEYS改为空,即CONFIG_SYSTEM_TRUSTED_KEYS=""
(5)注意2:内核编译需要一定内存空间,所以一定要给根目录分配足够的内容空间,编译完后,/目录占用的内存为24G
参考资料
-
内核替换:https://blog.csdn.net/qq_36393978/article/details/118391685?ops_request_misc=%7B%22request%5Fid%22%3A%22163661021916780255237071%22%2C%22scm%22%3A%2220140713.130102334.pc%5Fall.%22%7D&request_id=163661021916780255237071&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-10-118391685.pc_search_result_cache&utm_term=%E7%BB%99%E7%94%B5%E8%84%91%E6%9B%BF%E6%8D%A2%E5%86%85%E6%A0%B8&spm=1018.2226.3001.4187
-
grub启动流程: http://c.biancheng.net/view/1032.html
-
制作随身系统:https://blog.csdn.net/enjoyyl/article/details/100088620#comments_18950685