从用上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/bakrsync -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 重启!
|