请输入图片描述

首先,为啥:
因为一开始头铁,加上当时对这个系统还不熟,还以为飞牛的系统盘能像freeNas那样能挪作他用,于是乎直接大手一挥划了320G SSD 给他。
结果,装完系统后就只占用了可怜的10G多一点,剩下300多G丢在那放着浪费……
我用这系统目的就是为了他自带的内网穿透,省得再占用我的服务器内网带宽了,以及他的影视APP的颜值还算不错,它除了nas该有的存储功能,剩下啥都不用它干,之所以那么多空间完全用不上。
好吧,干他。直接给他砍一位数!


下面操作飞牛OS里面直接可以搞定,用户默认root,需要有一定的基础,不建议纯小白瞎玩。此外,数据宝贵,勤点备份(像我就先对虚拟机做了次镜像。
废话少说,这就开始。


首先在虚拟机划分一款硬盘给nas
然后lsblk命令查看磁盘的挂载情况,我新划分的盘是sde,要迁移的盘是sdc

sdc                                                 8:32   0   320G  0 disk  
├─sdc1                                              8:33   0   94M  0 part  
└─sdc2                                              8:34   0 319.9G  0 part  /
sde                                                 8:64   0   20G  0 disk 

从下面开始谨慎操作,注意核对命令

parted /dev/sde --script mklabel gpt

parted /dev/sde --script mkpart ESP fat32 1MiB 101MiB
parted /dev/sde --script set 1 esp on

parted /dev/sde --script mkpart primary ext4 101MiB 100%

这是分好区的磁盘的样子

lsblk /dev/sde
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sde      8:64   0   20G  0 disk 
├─sde1   8:65   0  100M  0 part 
└─sde2   8:66   0 19.9G  0 part 

开始格式化

mkfs.vfat -F 32 /dev/sde1
mkfs.ext4 /dev/sde2

挂载分区准备迁移

mount /dev/sde2 /mnt

bios引导不要下面这两行,做了也没啥影响

mkdir -p /mnt/boot/efi
mount /dev/sde1 /mnt/boot/efi

然后我用的是bios引导

parted /dev/sde2 --script set 1 bios_grub on

下面这步并不需要执行,看下你认不认真而已

mkdir -p /我是一只喵/喵喵喵喵喵

复制文件(这步比较慢,等他慢慢跑完,如果你还挂载有其他盘,别忘了吧其他盘也增加在--exclude排除目录选项里去

rsync -aAXv --exclude={"/mnt","/proc","/sys","/dev","/run","/tmp","/boot/efi"} / /mnt

mkdir -p /mnt/dev /mnt/proc /mnt/sys /mnt/boot /mnt/boot/efi

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

chroot /mnt /bin/bash

然后根据引导方式不同,重建不同的引导,ufi引导是这一步

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

bios是这一步

grub-install /dev/sde

update-grub

blkid /dev/sde1 记住他的uuid(bios引导不用
blkid /dev/sde2 也记住他的uuid

然后

nano /etc/fstab

将下面俩句写入文件

UUID=<sde1的UUID> /boot/efi vfat defaults 0 1 (bios引导不用
UUID=<sde2的UUID> / ext4 defaults 0 1

退出并卸载文件

exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt/boot/efi
umount /mnt

接下来关机,修改虚拟机引导盘
修改磁盘顺序
这里先别着急删掉旧虚拟硬盘,我们可以测试通过修改磁盘排序来改变他的引导.将旧的硬盘的scsi改到后面,新硬盘改到0:0,然后尝试开机.

哦嗬,报错了
启动报错
看了下,根下面少了两个文件,不要紧,吧引导盘顺序改回来重新做一次initramfs 和 grub。

mount /dev/sdd2 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

重新生成 initramfs

update-initramfs -u -k all
mkdir -p /run /run/lock
exit

然后重装引导

chroot /mnt
grub-install /dev/sdd
update-grub
exit
umount /mnt/dev /mnt/proc /mnt/sys /mnt

关机,修改引导选项,然后重启后顺利进系统
df -h 看了下,根目录的磁盘空间下去了
根目录占用
进系统点了下也一切正常,系统分区也显示正常
系统显示
至此系统盘缩容完成