您现在的位置是:首页 >学无止境 >华为云ubuntu服务器挂载硬盘分区格式化,挂载到/home目录,迁移docker到大的磁盘网站首页学无止境
华为云ubuntu服务器挂载硬盘分区格式化,挂载到/home目录,迁移docker到大的磁盘
华为云服务器挂载硬盘分区格式化,挂载到/home目录,迁移docker到大的磁盘
本篇博客记录个人在华为服务器进行的一系列操作,目的是将docker迁移到大的数据磁盘,而不是占用系统磁盘(系统磁盘只有40g太小了)
一、数据盘分区格式化以及挂载操作
su root 并输入密码
1、执行以下命令,查看新增数据盘。一般是/dev/vdb
执行命令查看磁盘信息:fdisk -l
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bcb4e
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 83886079 41942016 83 Linux
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
表示当前的云服务器有两块磁盘,“/dev/vda”是系统盘,“/dev/vdb”是新增数据盘。
2、执行以下命令,进入fdisk分区工具,开始对新增数据盘执行分区操作。
fdisk /dev/vdb
回显类似如下信息:
[root@ecs-test-0001 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x38717fc1.
3、输入“n”,按“Enter”,开始新建分区。
回显类似如下信息:
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
4、以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区。
Select (default p): p
Partition number (1-4, default 1):
5、以分区编号选择“1”为例,输入主分区编号“1”,按“Enter”。
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
6、以选择默认起始磁柱值2048为例,按“Enter”。
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
7、以选择默认按“Enter”。
tip: 可以自己指定last sector的范围,然后分多个区。 比如2048-2448000, 2448000-209715199
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help):
8、输入“p”,按“Enter”,查看新建分区的详细信息。
Command (m for help): p
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x38717fc1
Device Boot Start End Blocks Id System
/dev/vdb1 2048 209715199 104856576 83 Linux
9、输入“w”,按“Enter”,将分区结果写入分区表中。
Command (m for help): w
The partition table has been altered!
10、执行以下命令,将新的分区表变更同步至操作系统。
partprobe
11、格式化磁盘
mkfs -t ext4 /dev/vdb1
10、执行完后,就可以愉快的挂载了。执行以下命令,新建挂载目录。
mkdir 挂载目录,以新建挂载目录“/mnt/sdc”为例:
mkdir /mnt/sdc
mount 磁盘分区 挂载目录,以挂载新建分区“/dev/vdb1”至“/mnt/sdc”为例:
mount /dev/vdb1 /mnt/sdc
[root@ecs-test-0001 ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 43G 1.9G 39G 5% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 9.1M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs tmpfs 398M 0 398M 0% /run/user/0
/dev/vdb1 ext4 106G 63M 101G 1% /mnt/sdc
这一步搞定!
二、挂载磁盘并替换已有/home目录
为了不影响现有用户的登录
- 首先可以把/home 目录下所有文件复制到根目录下
cp -r /home /old_home
- 确认内容复制过去后可以删除/home下所有文件
cd /home
rf -rf *
-
然后把一个分区挂给/home
eg.mount /dev/vdb1 /home
-
把之前/old_home文件内容移动到 /home 目录下
cp -r /old_home/* /home/*
-
记得修改每个用户的文件夹的权限:
sudo chown -R 用户名.组名 目录名
sudo chown -R user.user user
这一步搞定!
三、将docker存储换到新目录下
docker 默认数据在 /var/lib/docker 目录下
- 停止docker 服务:
systemctl stop docker
- 将docker迁移到新的目录,新建新目录
mkdir -p boot/docker/lib
(任何一个指定的目录都行) - 复制数据
cp /var/lib/docker/* boot/docker/lib/*
- 修改配置问题
vim /etc/docker/daemon.json
{
"data-root":"/boot/docker/lib"
}
- 重新启动docker
systemctl daemon-reload && systemctl restart docker
- 检查验证 Docker Root Dir
docker info
- 查看docker images 以及 容器是否都在,最后删除原来的文件夹:
docker images
docker ps -a
rm -rf /var/lib/docker