您现在的位置是:首页 >学无止境 >华为云ubuntu服务器挂载硬盘分区格式化,挂载到/home目录,迁移docker到大的磁盘网站首页学无止境

华为云ubuntu服务器挂载硬盘分区格式化,挂载到/home目录,迁移docker到大的磁盘

FulChou 2023-07-08 20:00:03
简介华为云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目录

为了不影响现有用户的登录

  1. 首先可以把/home 目录下所有文件复制到根目录下
    cp -r /home /old_home
  2. 确认内容复制过去后可以删除/home下所有文件
cd /home
rf -rf *
  1. 然后把一个分区挂给/home
    eg. mount /dev/vdb1 /home

  2. 把之前/old_home文件内容移动到 /home 目录下
    cp -r /old_home/* /home/*

  3. 记得修改每个用户的文件夹的权限:
    sudo chown -R 用户名.组名 目录名
    sudo chown -R user.user user

这一步搞定!

三、将docker存储换到新目录下

docker 默认数据在 /var/lib/docker 目录下

  1. 停止docker 服务:
    systemctl stop docker
  2. 将docker迁移到新的目录,新建新目录
    mkdir -p boot/docker/lib (任何一个指定的目录都行)
  3. 复制数据
    cp /var/lib/docker/* boot/docker/lib/*
  4. 修改配置问题
    vim /etc/docker/daemon.json
{
"data-root":"/boot/docker/lib"
}
  1. 重新启动docker
    systemctl daemon-reload && systemctl restart docker
  2. 检查验证 Docker Root Dir
    docker info
  3. 查看docker images 以及 容器是否都在,最后删除原来的文件夹:
docker images 
docker ps -a 
rm -rf /var/lib/docker
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。