华为云挂载数据盘
前言
新买的服务器发现看不到数据盘,查了文档发现原来是没有挂载。
2、步骤
检查磁盘挂载
[root@AlexWong /]# fdisk -l Disk /dev/vda: 40 GiB, 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 Disklabel type: dos Disk identifier: 0x5d6e4b6b Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 83886079 83884032 40G 83 Linux Disk /dev/vdb: 100 GiB, 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
[root@AlexWong /]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.5M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/vda1 40G 2.3G 35G 7% / tmpfs 374M 0 374M 0% /run/user/0
Disk /dev/vda:磁盘1,已挂载
Disk /dev/vdb:磁盘2,未挂载
磁盘分区
100GB数据硬盘待分区
fdisk /dev/vdb 参数说明: n:新建分区 p: 主分区 e: 扩展分区 上面可以默认回车,最后输入w (write)将操作写入磁盘 按顺序输入`n、p、1、w`
[root@AlexWong /]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.32.1). 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. Created a new DOS disklabel with disk identifier 0xdb040091. Command (m for help): m Help: DOS (MBR) a toggle a bootable flag b edit nested BSD disklabel c toggle the dos compatibility flag Generic d delete a partition F list free unpartitioned space l list known partition types n add a new partition p print the partition table t change a partition type v verify the partition table i print information about a partition Misc m print this menu u change display/entry units x extra functionality (experts only) Script I load disk layout from sfdisk script file O dump disk layout to sfdisk script file Save & Exit w write table to disk and exit q quit without saving changes Create a new label g create a new empty GPT partition table G create a new empty SGI (IRIX) partition table o create a new empty DOS partition table s create a new empty Sun partition table Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.格式化刚划分的磁盘,格式成ext4格式
[root@AlexWong /]# mkfs.ext4 /dev/vdb挂载文件目录
# 新建文件夹 [root@AlexWong /]# mkdir data # 把挂载的分区写入/etc/fstab,这样在开机的时候能自动挂载 [root@AlexWong /]# echo "/dev/vdb /data ext4 defaults 0 0" >> /etc/fstab
重新加载fstable,并查看磁盘是否加载成功
# mount -a 初次分区有用,在已经挂载分区后,不再重新生效 [root@AlexWong /]# mount -a [root@AlexWong /]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.5M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/vda1 40G 2.3G 35G 7% / tmpfs 374M 0 374M 0% /run/user/0 /dev/vdb 98G 61M 93G 1% /data
# 如果二次修改分区,需要先移除挂载目录,然后再添加 [root@AlexWong /]# umount /dev/vdb /data [root@AlexWong /]# mount /dev/vdb /home [root@AlexWong home]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.8M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/vda1 40G 8.2G 29G 22% / overlay 40G 8.2G 29G 22% /dev/vdb 98G 61M 93G 1% /home
挂载成功。
3、分多个主区
100G分三个,一个20G,另外两个40G
Units = sectors of 1 * 512 = 512 bytes sectors: 20GB = 20 * 1024 * 1024 * 2 = 41943040 40GB = 40 * 1024 * 1024 * 2 = 83886080 40GB = 40 * 1024 * 1024 * 2 = 83886080
[root@AlexWong /]# fdisk -l Disk /dev/vda: 40 GiB, 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 Disklabel type: dos Disk identifier: 0x5d6e4b6b Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 83886079 83884032 40G 83 Linux Disk /dev/vdb: 100 GiB, 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 ----------------------------------20GB---------------------------------------- # 分第一个20G,分配给/share #以新挂载的数据盘/dev/vdb为例 [root@AlexWong /]# fdisk /dev/vdb # 输入“n”,按“Enter”,开始新建分区 Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) # 表示磁盘有两种分区类型: # “p”表示主分区 # “e”表示扩展分区 # 磁盘使用MBR分区形式,最多可以创建4个主分区,或者3个主分区加1个扩展分区,扩展分区不可以直接使用,需要划分成若干个逻辑分区才可以使用 # 磁盘使用GPT分区形式时,没有主分区、扩展分区以及逻辑分区之分 # 以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区 Select (default p): p # “Partition number”表示主分区编号,可以选择1-4 Partition number (1-4, default 1): 1 # “First sector”表示起始磁柱值,可以选择2048-209715199,默认为2048 First sector (2048-209715199, default 2048): 2048 # “Last sector”表示截止磁柱值,可以选择2048-209715199,默认为209715199 Last sector, +sectors or +size{K,M,G,T,P} (41943040-209715199, default 209715199): 41943040 # 表示20GB的分区已经建立成功 Created a new partition 1 of type 'Linux' and of size 20 GiB. # 输入“p”,按“Enter”,查看新建分区的详细信息 Command (m for help): p Disk /dev/vdb: 100 GiB, 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 Disklabel type: dos Disk identifier: 0xb2fef9e3 Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 41943040 41940993 20G 83 Linux # 输入“w”,按“Enter”,将分区结果写入分区表中 Command (m for help): w The partition table has been altered. Syncing disks. # 分区创建完成 ----------------------------------40GB---------------------------------------- # 开始创建40GB的分区 [root@AlexWong /]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (41943041-209715199, default 41945088): # Last sector = 41945088 + 83886080 = 125831168 区间值 Last sector, +sectors or +size{K,M,G,T,P} (41945088-209715199, default 209715199): 125831168 Created a new partition 2 of type 'Linux' and of size 40 GiB. Command (m for help): p Disk /dev/vdb: 100 GiB, 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 Disklabel type: dos Disk identifier: 0xb2fef9e3 Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 41943040 41940993 20G 83 Linux /dev/vdb2 41945088 125831168 83886081 40G 83 Linux Command (m for help): w The partition table has been altered. Syncing disks. ----------------------------------40GB---------------------------------------- # 开始创建最后一个40G分区 [root@AlexWong /]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): p Partition number (3,4, default 3): 3 # 最后一个硬盘,sector默认enter即可 First sector (41943041-209715199, default 125833216): Last sector, +sectors or +size{K,M,G,T,P} (125833216-209715199, default 209715199): Created a new partition 3 of type 'Linux' and of size 40 GiB. Command (m for help): p Disk /dev/vdb: 100 GiB, 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 Disklabel type: dos Disk identifier: 0xb2fef9e3 Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 41943040 41940993 20G 83 Linux /dev/vdb2 41945088 125831168 83886081 40G 83 Linux /dev/vdb3 125833216 209715199 83881984 40G 83 Linux Command (m for help): w The partition table has been altered. Syncing disks.# 执行以下命令,将新的分区表变更同步至操作系统。 [root@AlexWong /]# partprobe # 执行以下命令,将新建分区文件系统设为系统所需格式。 # mkfs -t 文件系统格式 /dev/vdb1 [root@AlexWong /]# mkfs -t ext4 /dev/vdb1 mke2fs 1.45.6 (20-Mar-2020) /dev/vdb1 is apparently in use by the system; will not make a filesystem here! # 报错,系统已占用 [root@AlexWong /]# cat /proc/partitions major minor #blocks name 253 0 41943040 vda 253 1 41942016 vda1 253 16 104857600 vdb 253 17 20970496 vdb1 253 18 41943040 vdb2 253 19 41940992 vdb3 # 上面可以看到dm工具确实在用 [root@AlexWong /]# dmsetup remove_all [root@AlexWong /]# dmsetup status No devices found # 此时对vdb1进行格式化操作 [root@AlexWong /]# mkfs.ext4 /dev/vdb1 [root@AlexWong /]# mkfs.ext4 /dev/vdb2 [root@AlexWong /]# mkfs.ext4 /dev/vdb3 ---------------------------------------------------------- 此时发生了重大事故,我重启了机器,发现无法登陆。原因就是 我之前已经把/dev/vdb格式化并挂载过。此时再分区才导致如此的问题。 我把/dev/vdb /home ext4 defaults 0 0 写入了/etc/fstab,重启后无法SSH登陆。 之后把/dev/vdb重新分区,却我忘记删除/etc/fstab的自动挂载。 UUID=f1e9feb2-4a28-4c57-a03b-3a732954b724 / ext4 defaults 1 1 #/dev/vdb /home ext4 defaults 0 0 #/dev/vdb1 /home ext4 defaults 0 0 ---------------------------------------------------------- # 挂载硬盘 [root@AlexWong /]# mount /dev/vdb1 /share [root@AlexWong /]# mount /dev/vdb2 /docker [root@AlexWong /]# mount /dev/vdb3 /project [root@AlexWong /]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 9.0M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/vda1 40G 17G 21G 44% / /dev/vdb1 20G 45M 19G 1% /share /dev/vdb2 40G 49M 38G 1% /docker /dev/vdb3 40G 49M 38G 1% /project ---------------------------------------------------------- # 把挂载的分区写入/etc/fstab,这样在开机的时候能自动挂载 # 建议使用UUID的方式挂载 [root@AlexWong /]# blkid /dev/vda1: UUID="f1e9feb2-4a28-4c57-a03b-3a732954b724" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5d6e4b6b-01" /dev/vdb1: UUID="85c07779-b50b-4397-8b4f-5fc608cd027b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="b2fef9e3-01" /dev/vdb2: UUID="245b254d-00c4-4666-9adb-a0fffca46a7e" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="b2fef9e3-02" /dev/vdb3: UUID="6420d65e-7946-49ea-b87c-90c25dc790a6" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="b2fef9e3-03" # 0 不检测硬盘, 根分区是1,数据盘是0 [root@AlexWong /]# echo "UUID=85c07779-b50b-4397-8b4f-5fc608cd027b /share ext4 defaults 0 0" >> /etc/fstab [root@AlexWong /]# echo "UUID=245b254d-00c4-4666-9adb-a0fffca46a7e /docker ext4 defaults 0 0" >> /etc/fstab [root@AlexWong /]# echo "UUID=6420d65e-7946-49ea-b87c-90c25dc790a6 /project ext4 defaults 0 0" >> /etc/fstab [root@AlexWong /]# cat /etc/fstab # /etc/fstab # Created by anaconda on Sat Dec 12 11:50:01 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=f1e9feb2-4a28-4c57-a03b-3a732954b724 / ext4 defaults 1 1 UUID=85c07779-b50b-4397-8b4f-5fc608cd027b /share ext4 defaults 0 0 UUID=245b254d-00c4-4666-9adb-a0fffca46a7e /docker ext4 defaults 0 0 UUID=6420d65e-7946-49ea-b87c-90c25dc790a6 /project ext4 defaults 0 0 ---------------------------------------------------------- # 发现一个问题,挂载硬盘后,原有文件丢失 [root@AlexWong docker]# ll total 20 drwx------ 2 root root 16384 Jan 5 15:59 lost+found drwxr-xr-x 4 root root 4096 Jan 5 17:54 volumes [root@AlexWong docker]# umount /dev/vdb2 /docker umount: /docker: target is busy. umount: /docker: target is busy. # 被占用 [root@AlexWong docker]# umount -l /dev/vdb2 /docker # 移除挂载后,重新退出文件目录,再次进入,文件还在