Arch Linux 系统迁移
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站
备份 Arch Linux 系统
安装 pigz
使用 pigz 多线程压缩比使用 tar 单线程压缩速度明显提升多倍
sudo pacman -S pigz
安装 zstd
使用 zstd 多线程压缩比使用 tar 单线程压缩速度明显提升多倍。Arch Linux 邮件列表: zstd 压缩解压与其他压缩解压工具速度对比
sudo pacman -S zstd
pigz 打包 Arch Linux
--exclude 排除的路径/文件,根据自己系统挂载情况选择需要排除的路径或文件。
注:当前是在 / 目录下执行
sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.tgz --exclude=/mnt --exclude=/sys --exclude=/run/media --exclude=/media /
zstd 打包 Arch Linux
--exclude 排除的路径/文件,根据自己系统挂载情况选择需要排除的路径或文件。
注:当前是在 / 目录下执行
sudo tar -z -c -T0 -18 -v -p -f - arch-backup.zstd --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.zstd --exclude=/mnt --exclude=/sys --exclude=/run/media --exclude=/media /
给新盘分区或挂载
使用 fdisk 等磁盘工具分区
自行参考 fdisk 或自己喜欢的磁盘工具使用帮助。不会用看帮助。或者看别人手册。
挂载新硬盘分区到 /mnt/arch
新建磁盘挂载目录
sudo mkdir -pv /mnt/arch
sudo mkdir -pv /mnt/arch/boot/efi
sudo mkdir -pv /mnt/arch/home
....
// 如果有其他分区自行创建对应挂载目录
挂载磁盘分区到对应挂载点
sudo mount /dev/sdb3 /mnt/arch
sudo mount /dev/sdb4 /mnt/arch/home
sudo mount /dev/sdb1 /mnt/arch/boot/efi
...
// 如果有其他分区自行创建对应挂载目录
pigz恢复 ArchLinux 系统
将当前系统的备份恢复到新挂载点,Linux 一切皆文件的思路对于备份恢复非常方便。
sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz -C /mnt/arch
zstd恢复 ArchLinux 系统
将当前系统的备份恢复到新挂载点,Linux 一切皆文件的思路对于备份恢复非常方便。
sudo tar -z -c -T0 -18 -v -p -f - arch-backup.zstd -C /mnt/arch
创建刚才排除的文件夹
sudo mkdir -pv /mnt/arch/proc
sudo mkdir -pv /mnt/arch/sys
sudo mkdir -pv /mnt/arch/run
sudo mkdir -pv /mnt/arch/dev
获取 UUID
sudo lsblk
修改 /etc/fstab 挂载文件
可以使用 genfatab 自动生成 /mnt/arch/etc/fstab 文件
sudo genfstab -U /mnt/arch >> /mnt/arch/etc/fstab
cat /mnt/arch/etc/fstab
建议使用 vim 等文本编辑器修改 /etc/fstab 挂载文件
注:arch-chroot 是 Arch 用的 chroot 其他 Linux 有专用 *-chroot 就用没有的话直接 chroot 也可以(可能会提示权限问题或缺少设备信息之类,还可以尝试使用相应 Linux*.iso 复制到 Ventoy 启动盘(见 Ventoy 启动盘)
sudo arch-chroot /mnt/arch/
vim etc/fstab
修改 UUID 修改对应的挂载点
更新 Grub 引导
还是在 arch-chroot 权限下,此处已 UEFI 引导为例,MBR 或其他方式请参考 Arch WiKi 上的介绍。
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader=ArchLinux --recheck
update-grub
编辑 /etc/mkinitcpio.conf 加速 linux.img 速度
vim /etc/mkinitcpio.conf
// 修改配置文件的最后两行
// 需要安装 zstd 支持
// pacman -Syu zstd
// 还需要开启 zstd 支持
// 否则请使用其他 压缩算法
COMPRESSION="zstd"
COMPRESSION_OPTIONS=(-c -T0 -18 -)
更新 mkinitcpio
mkinitcpio -p linux/linux-lts/其他内核
mkinitcpio -p linux-lts
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'default'
-> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts.img
==> Starting build: 5.4.84-1-lts
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-lts.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'fallback'
-> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts-fallback.img -S autodetect
==> Starting build: 5.4.84-1-lts
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-lts-fallback.img
==> Image generation successful
不需要加速 linux.img 速度
直接更新 mkinitcpio
mkinitcpio -p linux/linux-lts/其他内核
mkinitcpio -p linux-lts
退出 arch-chroot 提权模式
exit
卸载分区
sudo umount /mnt/arch/home
sudo umount /mnt/arch/boot/efi
...
// 如果有其他分区自行卸载对应挂载目录,和挂载相反的是最后卸载 根(/) 分区
sudo umount /mnt/arch
迁移完成
重启宿主机后,在 BIOS 界面可以看到新增的 ArchLinux 引导。表示迁移完成即可使用。
本文转自:https://juejin.cn/post/6990623175906164772
Arch Linux 系统迁移的更多相关文章
- 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南
How to install Arch Linux on VirtualBox 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南 本文导航 1.Arch Linux 软件仓库2. ...
- (扩展根目录容量方法汇总)把Linux系统迁移到另一个分区或者硬盘
Linux系统扩容方法汇总 相信很多朋友都有过这样的经历,本想装个Ubantu玩玩,没想到玩久了反而不习惯Windows了,然而开始装系统的时候只分配了非常小的空间,那应该怎样扩展我们的ubantu呢 ...
- Linux系统迁移
文章来源http://blog.csdn.net/gt945/article/details/12253585 sudo rsync -aAXvP --exclude-from=exclude.txt ...
- 潭州课堂25班:Ph201805201 django 项目 第三十课 linux 系统迁移 (课堂笔记)
进入虚拟环境, 冷冻 把安装环境放到这个文档中 pip freeze >> requirements.txt 在另一台机器中 pip install -r requirements.txt ...
- [LINUX] Arch Linux 硬盘拷贝式装系统+新增 home 分区
目录 前言 1. 实操 1.1 整个磁盘拷贝 1.2 创建 home 分区 1.3 修改 fstab 实现自动挂载 2. 涉及到的知识点 2.1 fstab 2.2 dd 命令 2.3 fdisk 命 ...
- [Linux发行版] 常见Linux系统下载
本专题页汇总最受欢迎的Linux发行版基本介绍和下载地址,如果您是一位刚接触Linux的新手,这里的介绍可能对您有所帮助,如果您是以为Linux使用前辈,也可以在评论处留下您宝贵意见和经验,以便让更多 ...
- Arch Linux 硬盘引导-联网安装
Arch Linux 硬盘引导-联网安装 ============https://www.archlinux.org/https://wiki.archlinux.org/https://wiki.a ...
- Arch Linux 的AUR用户软件仓库
==== Arch 官方软件仓库, 共10998个(20190325), 使用pacman搜索安装. https://www.archlinux.org/packages/ Core 核心软件包, 2 ...
- [Linux发行版] 常见Linux系统下载(转)
本专题页汇总最受欢迎的Linux发行版基本介绍和下载地址,如果您是一位刚接触Linux的新手,这里的介绍可能对您有所帮助,如果您是以为Linux使用前辈,也可以在评论处留下您宝贵意见和经验,以便让更多 ...
随机推荐
- 在Linux中设置php变量的方法
默认情况下已经安装好了PHP环境,并且知道安装好后的PHP文件路径,然后可以通过以下的方式设置PHP变量,快速执行PHP命令运行PHP文件. 环境:centos 第一步:vi ~/.bash_prof ...
- Solution -「ARC 063D」「AT 2149」Snuke's Coloring 2
\(\mathcal{Decription}\) Link. 平面上有一个左下角坐标 \((0,0)\) 右上角坐标 \((W,H)\) 的矩形,起初长方形内部被涂白. 现在给定 \(n\) ...
- 主机磁盘使用率超过85%导致es索引变为只读模式
[ type=cluster_block_exception, reason=index [ index_name ] FORBIDDEN/12/index read-only / allow del ...
- 基于myscript.js的web手写板(支持中文识别)
网上的手写板模板不少,但是支持中文识别的却不多,而且基本上都收费的,毕竟别人的中文库凭什么免费提供给你(说好的开源呢?说好的开源呢? ←_←) 好了,进入主题,myscript.js,在官网其实我并没 ...
- python-对于一个用例有多个步骤,转换成1条案例的处理方法
前言 对于前文写到的以excel数据驱动的框架中,每个用例都是单独的不依赖其他的案例,现在一个用例可能会有多个步骤,按照前面写道的博文中按excel表中逐行取出excel的值,那么一条用例有多个步骤, ...
- Linux提权之信息收集
1.操作系统版本 2.目标操作系统什么内核?多少位系统? 3.环境变量历史记录是否有利用? 4.运行了哪些服务和进程 top命令 5.安装了什么程序? 6.是否可以查看到root用户运行的进程 7.查 ...
- [Matlab]求解线性方程组
转自:http://silencethinking.blog.163.com/blog/static/911490562008928105813169/ AX=B或XA=B在MATLAB中,求解线性方 ...
- .Net Core之JWT授权
一.什么是JWT 文章参考:https://www.leo96.com/article/detail/55 JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义 了一种紧凑且自包含 ...
- JavaSE-万字长文-加载时间长-小白文
Java语法规范 所有的Java语句必须以;结尾! 无论是().[]还是{},所有的括号必须一一匹配! 主方法的代码只能写在{}中! Java基础语法(面向过程) 在学习面向对象之前,我们需要了解面向 ...
- 反编译C#代码来看看闭包到底是什么
原文地址:https://zhuanlan.zhihu.com/p/3161634 C#的闭包,是一个语法糖. 它实质上是将匿名函数转换成一个类,函数作为其中的类方法,并调整外部调用代码来实现的.既然 ...