场景案例1(1块新磁盘配置一个分区)
linux服务器已挂载一块新的数据盘,需要将该盘设为主分区,文件系统设置 为ext4格式,挂载在"/mnt/sdc"目录下,并设置开机启动自动挂载。
1、执行以下命令,查看新增数据盘
fdisk -l
回显类似如下信息,表示当前的云服务器有两块磁盘 /dev/vda是系统盘 /dev/sda 新增数据盘
[root@ecs-b656 test]# 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: 0x000cc4ad
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 2050047 1024000 83 Linux
Disk /dev/sba: 10.7 GB, 10737418240 bytes, 20971520 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
2、磁盘分区
执行以下命令,进入fdisk模式,开始对新增数据盘执行分区操作
2.1、fdisk 新增数据盘
以新挂载的数据盘“/dev/sba”为例:
fdisk /dev/sba
回显类似如下信息:
[root@ecs-b656 test]# fdisk /dev/sba
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 0xb00005bd.
Command (m for help):
输入“n”,按“Enter”,开始新建分区。
输入“n”表示新增一个分区。
回显类似如下信息,表示磁盘有两种分区类型:
“p”表示主要分区。
“e”表示延伸分区。
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区。
回显类似如下信息,“Partition number”表示主分区编号,可以选择1-4。
Select (default p): p
Partition number (1-4, default 1):
以分区编号选择“1”为例,输入主分区编号“1”,按“Enter”。
回显类似如下信息,“First sector”表示初始磁柱区域,可以选择2048-20971519,默认为2048。
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048):
以选择默认初始磁柱编号2048为例,按“Enter”。
回显类似如下信息,“Last sector”表示截止磁柱区域,可以选择2048-20971519,默认为20971519。
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
以选择默认截止磁柱编号20971519为例,按“Enter”。
回显类似如下信息,表示分区完成,即为10GB的数据盘新建了1个分区。
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help):
输入“p”,按“Enter”,查看新建分区的详细信息。
回显类似如下信息,表示新建分区“/dev/sba1”的详细信息。
Command (m for help): p
Disk /dev/sba: 10.7 GB, 10737418240 bytes, 20971520 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: 0xb00005bd
Device Boot Start End Blocks Id System
/dev/sba1 2048 20971519 10484736 83 Linux
输入“w”,按“Enter”,将分区结果写入分区表中。
回显类似如下信息,表示分区创建完成。
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2.3、新的分区表同步到数据盘上
执行以下命令,将新的分区表同步到数据盘上。
partprobe
有告警忽略即可~
2.4、新建分区文件系统设为系统所需格式
执行以下命令,将新建分区文件系统设为系统所需格式。
mkfs -t 文件系统格式 /dev/xvdb1
以设置文件系统为“ext4”为例:
mkfs -t ext4 /dev/sba1
回显类似如下信息:
[root@ecs-b656 test]# mkfs -t ext4 /dev/sba1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621184 blocks
131059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
格式化需要等待一段时间,请观察系统运行状态,不要退出。
2.5 新建挂载路径
mkdir 挂载路径
以新建挂载路径“/mnt/sdc”为例:
mkdir /mnt/sdc
2.6 挂载新建分区
执行以下命令,将新建分区挂载到步骤2.5中新建的路径下。
mount /dev/sba1挂载路径
以挂载新建分区至“/mnt/sdc”为例:
mount /dev/sba1 /mnt/sdc
2.7 查看挂载结果
执行以下命令,查看挂载结果。
df -TH
回显类似如下信息,表示新建分区“/dev/sba1”已挂载至“/mnt/sdc”
[root@ecs-b656 test]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 11G 7.4G 3.2G 71% /
/dev/sba1 ext4 11G 38M 9.9G 1% /mnt/sdc
3、设置开机自动挂载磁盘
如果您需要在服务器系统启动时自动挂载磁盘,推荐使用UUID来配置自动挂载数据盘。
说明:
磁盘的UUID(universally unique identifier)是Linux系统为存储设备提供的唯一的标识字符串。
3.1、执行如下命令,查询磁盘分区的UUID。
blkid 磁盘分区
以查询磁盘分区“/dev/sba1”的UUID为例:
blkid /dev/sba1
回显类似如下信息,表示“/dev/sba1”的UUID。
[root@ecs-b656 test]# blkid /dev/sba1
/dev/xvdb1: UUID="1851e23f-1c57-40ab-86bb-5fc5fc606ffa" TYPE="ext4"
3.2、配置/etc/fstab文件
执行以下命令,使用VI编辑器打开“fstab”文件
vi /etc/fstab
按“i”,进入编辑模式。
将光标移至文件末尾,按“Enter”,添加如下内容。
UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc ext4 defaults 0 2
按“ESC”后,输入“:wq”,按“Enter”。
保存设置并退出编辑器
恭喜,磁盘挂载完成!
场景案例3(挂载到已有目录下)
linux 服务器现有目录磁盘不足,对已有目录挂载磁盘,并设置开机启动自动挂载。
1、分配方案
1块500G磁盘,计划分配三个分区并分别挂载到/opt 、/usr 、/var目录下具体分配情况如下:
挂载目录 | 挂载大小G |
---|---|
/opt | 100G |
/usr | 100G |
/var | 300G |
2、查看新增数据盘
fdisk -l
回显类似如下信息:
Disk /dev/sda: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track,65270 cylinders
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
3、磁盘分区
3.1 执行一下命令进入/dev/sba操作磁盘
fdisk /dev/sba
3.2 新建第一个分区
输入“n”,按“Enter”,开始新建分区。
输入“n”表示新增一个分区。
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区。
回显类似如下信息,“Partition number”表示主分区编号,可以选择1-4。
Select (default p): p
Partition number (1-4, default 1):
以分区编号选择“1”为例,输入主分区编号“1”,按“Enter”。
回显类似如下信息,“First sector”表示初始磁柱区域,可以选择1-65270 ,默认为1。
Partition number (1-4, default 1): 1
First sector (1-65270 , default 1):
以选择默认初始磁柱编号1为例,按“Enter”。
回显类似如下信息,“Last sector”表示截止磁柱区域,可以选择1-13054,默认为65270。
First sector (1-65270 , default 1):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (1-65270 , default 65270 ): 13054
以选择默认截止磁柱编号13054为例,按“Enter”。
回显信息:
Last sector, +sectors or +size{K,M,G} (1-65270 , default 13054):
Using default value 13054
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help):
分区大小计算方式:
磁盘大小536.9G,计划分配3部分来使用其中/opt目录挂载100G,/usr目录挂载100G,剩余部分全部给/var目录。
系统显示536.9G磁盘空间共分为1-65270个扇区(sectors ),由此可知/opt占1/5、/usr占1/5、/var占3/5 即:
挂载目录 | 挂载大小 | 扇区分配计算 |
---|---|---|
/opt | 100G | 65270*1/5 |
/usr | 100G | 65270*1/5 |
/var | 300G | 65270*3/5 |
3.3、创建第二个分区
fdisk /dev/sba
输入“n”,按“Enter”,开始新建分区。
输入“n”表示新增一个分区。
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区。
回显类似如下信息,“Partition number”表示主分区编号,可以选择1-4。
Select (default p): p
Partition number (1-4, default 1):
以分区编号选择“1”为例,输入主分区编号“2”,按“Enter”。
回显类似如下信息,“First sector”表示初始磁柱区域,可以选择13055-65270 ,默认为2。
Partition number (1-4, default 1): 2
First sector (13055-65270 , default 13055):
以选择默认初始磁柱编号2为例,按“Enter”。
回显类似如下信息,“Last sector”表示截止磁柱区域,可以选择13055-65270,默认为65270。
First sector (1-65270 , default 1):
Using default value 26108
Last sector, +sectors or +size{K,M,G} (13055-65270 , default 65270 ): 26108
以选择默认截止磁柱编号26108为例,按“Enter”。
回显信息:
Last sector, +sectors or +size{K,M,G} (13055-65270 , default 65270 ):
Using default value 26108
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help):
3.4、创建第三个分区
重复3.3步骤一路默认即可。
Command (m for help):
输入wp保存后退出!
4、分区效果
5、格式化分区
将新分区格式化为ext4文件系统
mkfs -t ext4 /dev/sda1
mkfs -t ext4 /dev/sda2
mkfs -t ext4 /dev/sda3
6、挂载硬盘
6.1创建临时挂载点
在根目录下创建/tmp1 、/tmp2、/tmp3目录
mkdir /tmp1
mkdir /tmp2
mkdir /tmp3
6.2 将新分区挂载到临时目录下
mount /dev/sda1 /tmp1
mount /dev/sda2 /tmp2
mount /dev/sda3 /tmp3
6.3分别拷贝/opt、/usr、/var下的所有内容到新的临时硬盘
/bin/cp -pdr /opt/* /tmp1
/bin/cp -pdr /usr/* /tmp2
/bin/cp -pdr /var/* /tmp3
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件
https://blog.csdn.net/jiaolongdy/article/details/45224711
6.4、删除当前/var、/usr、/opt目录下的内容
rm -rf /opt/*
rm -rf /usr/*
rm -rf /var/*
6.5 重新挂载硬盘到/var、/usr、/opt目录
umount /dev/sba1
mount /dev/sba1 /opt
umount /dev/sba2
mount /dev/sba2 /usr
umount /dev/sba3
mount /dev/sba3 /var
卸载说明:
inux umount 时出现device is busy 的处理方法–fuser
使用 fuser 的指令
假设现在 mount 起来的目录是 /media/share
* 查询: fuser -m /media/share
* 显示: /media/share: 25023c
就代表是 process 25023(pid) 有使用到此目录, 后面 c 代表的意思可参考下述:
* c: current directory.
* e: executable being run.
* f: open file. f is omitted in default display mode.
* F: open file for writing. F is omitted in default display mode.
* r: root directory.
* m: mmap'ed file or shared library.
要把这个资源释放的话, 可以有下述做法:
* kill -9 25023 # ps aux | grep 25023 应该就会看到它
https://blog.csdn.net/radkitty/article/details/5337304
6.6 设置开机启动自动挂载
新创建的分区不能开机自动挂载,每次重启机器都要手动挂载。
设置开机自动挂载需要修改/etc/fstab文件
vi /etc/fstab
在文件的最后增加一行
/dev/sba1 /opt ext4 defaults 0 2
/dev/sba2 /usr ext4 defaults 0 2
/dev/sba3 /var ext4 defaults 0 2
恭喜大功告成!!!!!