linux硬盘挂载

Scroll Down

1.查看磁盘

查看磁盘分区

fdisk -l
[root@VM-0-11-centos ~]# fdisk -l

Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disk label type: dos
Disk identifier: 0x0009ac89

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes

[root@VM-0-11-centos ~]# 

其中,/dev/vda是系统盘,/dev/vdb是未挂载的磁盘。

查看磁盘空间

df -h
[root@VM-0-11-centos ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        908M     0  908M   0% /dev
tmpfs           919M   24K  919M   1% /dev/shm
tmpfs           919M  456K  919M   1% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        50G  2.9G   45G   7% /
tmpfs           184M     0  184M   0% /run/user/0
[root@VM-0-11-centos ~]# 

目前只有系统盘,未挂载的盘不会在这显示。

  • /dev/vda1是系统盘的逻辑分区。
  • tmpfs为基于内存的虚拟文件系统。
  • devtmpfs为文件系统创建设备节点,功能是在linux kernel启动早起建立一个初步的/dev,让一般启动程序不用等待udev,缩短GNU/Linux的开机时间。

2.分区

磁盘可以分区,也可以不分区直接格式化后挂载。

fdisk /dev/vdb

image.png

输入n,创建新分区。
image.png

输入p,创建主分区。
image.png

输入1,创建1个分区,后面使用默认值,分配所有扇区。
image.png

输入w,将分区表写入磁盘。
image.png

查看分区,分区成功,新分区为/dec/vdb1。
image.png

格式化

查看已加载驱动程序的,支持的文件系统。
它并非展示所有支持的文件系统,如果某种支持的文件系统从未被使用,可能就不会展示在该文件中,如果磁盘格式化为该格式并挂载,该格式就会显示在此文件中。

cat /proc/filesystems

将/dev/vdb1分区格式化为ext3格式。

  • ext3是一个日志文件系统,是很多Linux发行版的默认文件系统。
  • 最新的ext4是Linux kernel 2.6.28起支持。
  • CentOS7.0开始默认文件系统是xfs。
mkfs -t ext3 /dev/vdb1

image.png

挂载

将/dev/vdb1挂载到/opt/data目录下,挂载目录必须存在,不存在需要先创建目录。

mount /dev/vdb1 /opt/data

挂载成功。
image.png

写入/etc/fstab

将挂载信息写入/etc/fstab文件,否则重启后需重新挂载。
image.png

文件中一共有六列:

  1. 设备名/label/uuid,设备名称跟磁盘插槽相关,label为标签名,uuid是分区唯一标识。
  2. 挂载点。
  3. 文件系统。
  4. 文件系统参数,一般选择default。
    image.png
  5. 能否被dump命令使用,0代表不做dump备份,1为每天备份,2为不定日期备份。
  6. 是否检验扇区,开机时,系统默认使用fsck检查系统是否完整。0为不检查,1为优先检查,2为1检查完成后检查。

查看分区的uuid及类型

blkid

image.png

磁盘卸载

取消挂载

umount /dev/vdb1

image.png

删除分区

fdisk /dev/vdb

输入d,删除分区,输入w,写入磁盘
image.png
image.png

重置磁盘为原始状态

通过/dev/zero设备,将空字符(0x00)写入磁盘的数据块,只需写入前面一部分即可。

dd if=/dev/zero of=/dev/vdb bs=1M count=1024

image.png

问题

1.无法格式化扩展分区

报错:inode_size (128) * inodes_count (0) too big for a
filesystem with 0 blocks, specify higher inode_ratio (-i)
or lower inode count (-N).

image.png
错误原因:扩展分区无法直接格式化。
解决方法:在扩展分区的扇区上创建逻辑分区,格式化逻辑分区。

fdisk /dev/vdb

输入n,创建新分区,输入l,创建逻辑分区,输入w,写入磁盘。
image.png

格式化逻辑分区

mkfs -t ext4 /dev/vdb5

image.png
image.png

2.无法卸载分区

出现提示:umount: /opt/data: target is busy.
image.png
错误原因:分区被程序占用,无法umount。
解决方法:查出占用的程序,kill掉程序,再umount。

查询占用分区的进程的pid。

fuser -cu /dev/vdb2

image.png

查看具体进程信息

ps -ef |grep 12108
ps -ef |grep 22548

image.png
查询发现都是bash进程,是有shell窗口停留在分区所在目录,且未关闭。

确认没有影响,就可以杀死进程,可以使用fuser命令,也可以使用kill。

fuser -ck /dev/vdb2

kill -9 12108 22548

image.png

再次卸载分区,卸载成功!
image.png