珍爱生命,远离cp
从用上deepin开始,就一发不可收拾。由于deepin的前几个版本(13-14)都是需要从新安装系统的,每个版本必须安装尝鲜,但由于那会儿还在学校,安装的软件基本上是gcc等等,所以每个版本都是重新安装的,但工作以来,需要安装的软件(基本上是一些开发库)越来越多,懒癌重症者,必不想重装系统。15版的deepin系统已经基于debian系统,系统升级上提供了滚动升级的方式,因此新的的15版的升级都无需重新安装格盘,一切重头开始。
自己的一些linux系统安装惯例。根分区/(/dev/sda1)一般划分10G(正是这个可恶的开始),然后/home(/dev/sdb2)单独分区。以后如果重装系统,只格式化跟分区/。继续使用原先的/home分区,这一切在每每deepin发版本时都不存在问题(deepin 13-14无法滚动升级)。但15的发布,游戏规则改变,可以滚动升级。根分区的10个G越发捉襟见肘,终于于昨晚爆发,编译golang程序提示无法分配磁盘空间,一个ls命令下去,一大堆python错误提示。需要下决心了。
电脑的基本情况:
thinkpad sl410(老爷机了), 6G mem, ssd+hd
ssd分区
- /dev/sda1 10G 挂载根分区/
- /dev/sda2 60G 暂时不用
- /dev/sda3 40G ntfs格式,用作安装windows
hd分区
- /dev/sdb1 150G ntfs, 平时存放文件
- /dev/sdb2 150 ext4, 挂载/home目录
- /dev/sdb3 8G swap, 用作交换分区
手术步骤:
(以下操作都是root权限)
- 在/home/建立备份目录,然后使用rsync同步文件
blkid #记录/dev/sda1的uuid为$old_sda1, 后文需要用到
mkdir /home/bak_home #/home/zql的备份目录
mkdir /home/bak #备份根分区主要文件的目录
rsync -aSvH --delete --exclude=/sys --exclude=/tmp --exclude=/proc --exclude=/mnt --exclude=/media --exclude=/home /* /home/bak
rsync -aSvH /home/zql/* /home/bak_home
- 制作deepin U盘启动盘(假设磁盘号为/dev/sdc)
dd if=/home/zql/Downloads/deeepin-15.3-amd.iso of=/dev/sdc bs=1M
分区以及格式化
a. 使用U盘启动盘启动系统或者使用linux系统的livecd启动
b. 切换到console 1(Ctrl+Alt+F1)或者打开终端
c.fdisk /dev/sda
d. 删除/dev/sda1和/dev/sda2(按m键提示,d键删除分区)
e. 基于删除的两个分区的空间新建主分区(按n键新建)
f. 保存(按w键)
g.mkfs.ext4 /dev/sda1
#格式化为ext4格式恢复文件
a. 挂载/dev/sda1, 执行mount /dev/sda1 /mnt
b. 根分区/文件同步,rsync -aSvH --delete /home/bak/* /mnt
调整分区UUID
a. 得到/sda1以及/sdb2和交换分区/dev/sdb3的编号,执行blkid
, 记录其编号分别为$sda1, $sdb2, $sdb3
b. vi /mnt/fstab,分别用$sdb1, $sdb2, $sdb3替换挂载编号($sdb2, $sdb3不改变, 可不动)恢复用户目录
a.mkdir -p /mnt/sys /mnt/proc /mnt/mnt /mnt/media /mnt/tmp /mnt/home/zql
b.rsync -aSvH --delete /home/bak/* /mnt/home/zql
#恢复用户数据启动项修复
a.sed 's/$old_sda1/$sda1/g' /mnt/boot/grub/grub.cfg
b.grub-install /dev/sda
#安装grub到/dev/sda重启!
骚文到此结束!!!