UOS全盘安装系统后,再次分区方法。
1.查看系统版本
1.1.说明
再次分区方法为103X版镜像安装的系统(102X版本未测试),并且安装操作系统时需采用全盘安装。
该文档仅供学习使用,如若他用,风险自负。
1.2.查看系统版本
2.环境准备
2.1.说明
1、全盘安装的系统且系统只有一块硬盘的情况下,将数据盘重新分区;
2、条件:需开发者模式
2.2.备份文件权限—很重要
终端中执行以下命令:
终端打开方法:桌面空白处右击-在终端中打开
sudo getfacl -R / > a1.facl
sudo getfacl -R /. > a2.facl
sudo getfacl -R /data/ > a3.facl
sudo getfacl -R /data/. > a4.facl
将以上4个文件备份到其他存储介质中,并拷贝到启动盘中(下文会用到)
3.进入livecd系统
3.1.功能说明
单用户和tty9均无法使用的情况下,需要修复系统,可以用系统启动U盘进入livecd模式进行修复。
livecd系统下可对系统做任何操作。
3.2.使用步骤
用uos系统制作启动盘(U盘或者光盘),插在机器上,开机在BIOS或者快速启动项里选择U盘或者光盘启动,进入系统安装界面后按字母E进入编辑模式(amd机器可能是按Tab键进入编辑模式),找到Linux开头的那一行,删除livecd-installer这个参数,然后按Ctrl+X或者F10(amd机器可能是直接按Enter回车键即可)进入livecd系统,如下:
进去livecd系统后就可以看到电脑上的硬盘各个分区。
4.livecd系统中备份数据
4.1.修改livecd系统密码
livecd系统密码为随机密码,防止锁屏无法进行继续操作,需修改livecd系统密码。
执行绿色代码,用户名可以在“控制中心—账户”中查看
uos@UOS:~/Desktop$ sudo passwd uos
New password:
Retype new password:
passwd: password updated successfully
4.2.挂载原系统分区(目录)
手动挂载原系统分区目录,使用lsblk -f可以查看原分区情况。
分区简介:(nvme0n1是我电脑硬盘名(name),对应的还有sda、sdb、sdc等等,可使用lsblk查询)
nvme0n1p2:label显示Boot表示原系统的boot分区
nvme0n1p3:label显示Roota表示原系统的/(根)分区
nvme0n1p5:label显示data表示原系统的数据分区
其他略···
在livecd系统中创基一个目录/wwr:
uos@UOS:~/Desktop$ sudo mkdir /wwr
将原系统的根分区挂载到/wwr中:
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p3 /wwr/
将原系统的数据分区挂载到/wwr/data中(树形目录需保持不变):
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p5 /wwr/data/
验证挂载数据是否正确:
uos@UOS:~/Desktop$ cd /wwr/data/
/wwr/data中有数据:
uos@UOS:/wwr/data$ ls
home lost+found opt root var
根分区中有数据:
uos@UOS:/wwr/data$ ls ..
bin data etc lib lib64 lost+found mnt proc root sbin sys usr
boot dev home lib32 libx32 media opt recovery run srv tmp var
4.3.备份原系统数据(可在正常系统中提前备份)
思路:备份原数据盘中所有数据(所有数据包括隐藏数据-非常重要)
正常系统中将数据盘中所有的数据备份到系统盘(如果系统盘空间足够),方法同下。
在livecd系统中,/wwr目录下创建bak目录:
uos@UOS:/wwr$ sudo mkdir bak
回到/wwr/data目录下:
uos@UOS:/wwr$ cd /wwr/data
复制当前目录下可见文件(夹)到上级目录的bak中:
uos@UOS:/wwr/data$ sudo cp -r * ../bak/
复制当前目录下隐藏文件(夹)到上级目录的bak中:
uos@UOS:/wwr/data$ sudo cp -r . ../bak/
4.4.卸载原系统分区(目录)
与4.2节内容相反;卸载后才能对整个硬盘操作,否则会提示busy。
退出当前操作目录,否则卸载也会提示busy:
uos@UOS:/wwr/data$ cd
将原系统的根分区卸载:
uos@UOS:~$ sudo umount /dev/nvme0n1p3
将原系统的数据分区卸载:
uos@UOS:~$ sudo umount /dev/nvme0n1p5
验证是否卸载完成:
uos@UOS:~$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 773M 3.0M 770M 1% /run
/dev/sda1 vfat 15G 3.6G 11G 25% /run/live/medium
overlay overlay 3.8G 129M 3.7G 4% /
tmpfs tmpfs 3.8G 18M 3.8G 1% /dev/shm
tmpfs tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
tmpfs tmpfs 3.8G 192K 3.8G 1% /tmp
tmpfs tmpfs 773M 56K 773M 1% /run/user/1000
5.livecd系统中分区
5.1.使用分区工具对整块硬盘的数据分区重新分区
nvme0n1前面讲过。此处略过:
uos@UOS:~$ sudo fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
打印现有分区情况:
Command (m for help):p
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WDC PC SN720 SDAPNTW-512G-1027
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2CDF16A-4FF1-4C64-86BC-497F31BCD3D3
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 616447 614400 300M EFI System
/dev/nvme0n1p2 616448 3762175 3145728 1.5G Linux filesystem
/dev/nvme0n1p3 3762176 87648255 83886080 40G Linux filesystem
/dev/nvme0n1p4 87648256 171534335 83886080 40G Linux filesystem
/dev/nvme0n1p5 171534336 937299967 765765632 365.1G Linux filesystem
/dev/nvme0n1p6 937299968 977145855 39845888 19G Linux filesystem
/dev/nvme0n1p7 977145856 1000214527 23068672 11G Linux swap
删除分区:
Command (m for help):d
要删除的分区号:(nvme0n1p5是数据盘,需要对它操作,其他的不动,切记)
Partition number (1-7, default 7):5
Partition 5 has been deleted.
打印删除后的结果:
Command (m for help):p
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WDC PC SN720 SDAPNTW-512G-1027
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2CDF16A-4FF1-4C64-86BC-497F31BCD3D3
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 616447 614400 300M EFI System
/dev/nvme0n1p2 616448 3762175 3145728 1.5G Linux filesystem
/dev/nvme0n1p3 3762176 87648255 83886080 40G Linux filesystem
/dev/nvme0n1p4 87648256 171534335 83886080 40G Linux filesystem
/dev/nvme0n1p6 937299968 977145855 39845888 19G Linux filesystem
/dev/nvme0n1p7 977145856 1000214527 23068672 11G Linux swap
新建分区:
Command (m for help):n
默认(回车):
Partition number (5,8-128, default 5):
需要创建分区大小:
First sector (171534336-1000215182, default 171534336):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (171534336-937299967, default 937299967):+200G
Created a new partition 5 of type 'Linux filesystem' and of size 200 GiB.
Partition #5 contains a ext4 signature.
Y确认:
Do you want to remove the signature? [Y]es/[N]o:Y
The signature will be removed by a write command.
打印新建分区后的结果:
Command (m for help):p
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WDC PC SN720 SDAPNTW-512G-1027
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2CDF16A-4FF1-4C64-86BC-497F31BCD3D3
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 616447 614400 300M EFI System
/dev/nvme0n1p2 616448 3762175 3145728 1.5G Linux filesystem
/dev/nvme0n1p3 3762176 87648255 83886080 40G Linux filesystem
/dev/nvme0n1p4 87648256 171534335 83886080 40G Linux filesystem
/dev/nvme0n1p5 171534336 590964735 419430400 200G Linux filesystem
/dev/nvme0n1p6 937299968 977145855 39845888 19G Linux filesystem
/dev/nvme0n1p7 977145856 1000214527 23068672 11G Linux swap
Filesystem/RAID signature on partition 5 will be wiped.
保存分区方案:
Command (m for help):w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
5.2.格式化新分区
将新分区格式化为ext4,用于数据盘的挂载:
uos@UOS:~$ sudo mkfs.ext4 /dev/nvme0n1p5
mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: done
Creating filesystem with 52428800 4k blocks and 13107200 inodes
Filesystem UUID: d88b95bd-6a4d-4aaa-9d37-7d78e5b9a383
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
5.3.修改fstab中对应的uuid值
分区重新分区后nvme0n1p5的uuid已发生变化,系统默认使用的原来的uuid,将新的uuid替换上去,否则无法开机。
将原系统的根分区挂载到/wwr中:
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p3 /wwr/
查看新nvme0n1p5的uuid:
uos@UOS:~$ sudo blkid /dev/nvme0n1p5
/dev/nvme0n1p5: UID="d88b95bd-6a4d-4aaa-9d37-7d78e5b9a383" TYPE="ext4" PARTUUID="0c3be715-0433-c14f-b2d4-d295aadaecb6"
修改fstab文件:
uos@UOS:~$ sudo vim /wwr/etc/fstab
6.livecd系统中还原数据
6.1.还原数据盘中的数据
将新数据分区挂载到/wwr/data中(树形目录需保持不变):
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p5 /wwr/data/
uos@UOS:~$ cd /wwr
uos@UOS:/wwr$ ls
bak boot dev home lib32 libx32 media opt recovery run srv tmp var
bin data etc lib lib64 lost+found mnt proc root sbin sys usr
uos@UOS:/wwr$ cd bak/
uos@UOS:/wwr/bak$ ls
bak bin boot dev home lib lib32 lib64 libx32 lost+found opt proc recovery root run sbin var
将备份的数据拷贝到新数据盘中:
uos@UOS:/wwr/bak$ sudo cp -r * ../data/
uos@UOS:/wwr/bak$ sudo cp -r . ../data/
uos@UOS:/wwr/data$ ls home/uos/.icons/
default
uos@UOS:/wwr/data$
6.2.恢复文件权限—很重要
照应2.2节内容。
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p3 /wwr/
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p2 /wwr/boot
uos@UOS:~/Desktop$ sudo mount /dev/nvme0n1p5 /wwr/data/
uos@UOS:~/Desktop$ sudo mount —bind /dev/ /wwr/dev/
uos@UOS:~/Desktop$ sudo mount —bind /dev/pts/ /wwr/dev/pts/
uos@UOS:~/Desktop$ sudo mount —bind /proc/ /wwr/proc/
uos@UOS:~/Desktop$ sudo mount —bind /sys/ /wwr/sys/
uos@UOS:~/Desktop$ sudo chroot /wwr /bin/bash
root@UOS:/#
此时类似于进入到了单用户模式,只有根分区挂载,需要再执行mount操作将系统其他分区挂载上去(主要是/data分区下的几个目录需要挂载):
root@UOS:/#mount -a
将2.2章节中备份的4个facl文件拷贝至/wwr目录下:
新建一个终端执行sudo cp.facl /wwr
切回原终端,恢复文件权限:
root@UOS:/#setfacl —restore.facl
root@UOS:/#
6.3.测试
重启测试(可能会出现无法进入系统的情况[请自行处理])
预期结果(如下图):
剩余未分区的磁盘可用磁盘管理器(分区编辑器)进行后续操作,上图中NTFS分区安装了非国产系统,以测试分区是否正常使用。 |