AWS服务器挂载新硬盘,并将项目文件迁移

一、查看当前硬盘的挂载信息
lsblk

假如旧的硬盘 名字为 nvme1 挂载在/export目录下

新的硬盘 名字叫nvme2 还未进行挂载

 

二、进行新硬盘挂载

1.首先对新硬盘进行分区

sudo fdisk /dev/nvme2

按照提示依次输入 g、n、回车、回车、回车、w

详情如下

Command (m for help): g        # 创建 GPT 分区表
Created a new GPT disklabel (GUID Partition Table).

Command (m for help): n        # 新建分区
Partition number (1-128, default 1): [回车]
First sector (xxx-xxx, default xxx): [回车]
Last sector, +sectors or +size{K,M,G,T,P} (xxx-xxx, default xxx): [回车]

Command (m for help): w        # 写入分区表
The partition table has been altered.

2.格式化新分区

sudo mkfs.ext4 /dev/nvme2p1

nvme2p1是新硬盘nvme2刚刚创建的分区名字,可以通过lsblk指令确认下名字是什么。

ext4是硬盘采用的格式,还有别的格式,按照具体情况自行选择。

3.创建临时目录用于挂载新硬盘

sudo mkdir -p /exportNew

4.挂载硬盘

sudo mount /dev/nvme2p1 /exportNew

到此新硬盘已经完成挂载。

 

三、从旧硬盘同步文件到新硬盘

sudo rsync -a --exclude='要忽略的目录' /export/ /exportNew/

--exclude是设置不同步过来的目录,如果要全部同步,就不需要加。

rsync是自动的增量同步,如果不小心中断了,直接再次执行相同的指令就可以继续。

同步时间比较长,可以在docker里执行,防止服务器指令窗口关闭后指令自动终止执行。

 

四、互换新旧硬盘的挂载目录

1.查看旧硬盘上运行的进程

lsof /export

2.根据进程号,把所有运行的进程关掉,否则会因为硬盘正在使用而无法卸载硬盘

sudo kill -9 进程号

3.卸载新旧硬盘

sudo umount /export
sudo umount /exportNew

如果有进程杀掉也会自动重启,导致旧硬盘一直提示被占用或卸载不成功,那就根据实际情况自行查找关闭进程的方案

4.新硬盘挂载到旧的目录上

sudo mount /dev/nvme2p1 /export

到这里旧的目录已经换成了新硬盘的内容,并且目录没有发生变化,所以不会影响项目启动,可以起一下项目试试。

 

五、配置/etc/fstab文件实现开机自动挂载

1.查看新硬盘uuid

sudo blkid /dev/nvme2p1

2.编辑/etc/fstab文件

sudo vim /etc/fstab

3.写入新硬盘的配置,并保存

UUID=abc12345-6789-xxxx-yyyy-zzzzzzzzzzzz  /export  ext4  defaults,nofail

到此全部完成。

posted @ 2025-05-15 11:31  生命不息bug不止  阅读(69)  评论(0)    收藏  举报