Linux采用了一种标准格式来为硬盘分配设备名称。
/dev/hdx
,其中x表示一个字母,具体是什么要根据驱动器的检测顺序(第一个驱动器是a,第二个驱动器是b,以此类推)。/dev/sdx
,其中的x具体是什么也要根据驱动器的检测顺序(和之前一样,第一个驱动器是a,第二个驱动器是b,以此类推)。# 查看linux机器上的磁盘
[root@vm14 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs dea185f7-ab7d-4f94-9bc8-7b536de87f87 /boot
└─sda2 LVM2_member Kqr800-3veA-yAKZ-Xe32-5V4H-oHL5-Yj5gEd
├─centos-root xfs 4c096052-0d2d-4a44-82f7-7dfea2f4bf9c /
├─centos-swap swap f3ac5611-82da-4b55-9117-908e4e469f17 [SWAP]
└─centos-home xfs 11582d8b-b548-4aa9-be57-10ba990c7e16 /home
sdb
sr0
根据前面的介绍,磁盘格式为hdx或sdx,显然机器上有两个磁盘sda、sdb。其中sda已经进行了分区,包含sda1、sda2两个分区;sdb尚未进行分区。
Linux中可以使用fdisk
命令对磁盘进行分区,执行fdisk时需要具备超级管理员权限。
此处使用sdb磁盘进行分区演示:
# 磁盘都在目录/dev下,sdb磁盘对应的目录是/dev/sdb
[root@vm14 ~]# fdisk /dev/sdb
# fdisk此时进入交互命令行,可以输入m进行交互命令帮助
# 输入n并按回车键进行新建分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
# 主分区的限制为一块磁盘只能创建4个主分区,而扩展分区可分出更多的分区
# 此处输入p创建主分区
Select (default p): p
# 分区号保持默认即可,直接按回车进入下一步
分区号 (1-4,默认 1):
# 扇区也保持默认,按回车进入下一步
起始 扇区 (2048-41943039,默认为 2048):
# 设置分区的大小,此处创建一个2G大小的分区,输入+2G,然后回车(默认是剩余磁盘总和,当然有2T上限)
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
# 输入p,按回车,查看分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x66e7a9e3
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
# 上面的分区操作都是在内存中操作的,必须要输入w才会将分区信息写入磁盘
# 输入w,按回车将分区信息写入磁盘
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
# 至此新建分区完成,可以通过上面的lsblk -f进行查看分区情况
[root@vm14 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs dea185f7-ab7d-4f94-9bc8-7b536de87f87 /boot
└─sda2 LVM2_member Kqr800-3veA-yAKZ-Xe32-5V4H-oHL5-Yj5gEd
├─centos-root xfs 4c096052-0d2d-4a44-82f7-7dfea2f4bf9c /
├─centos-swap swap f3ac5611-82da-4b55-9117-908e4e469f17 [SWAP]
└─centos-home xfs 11582d8b-b548-4aa9-be57-10ba990c7e16 /home
sdb
└─sdb1 LVM2_member ONrxaN-u014-kURa-CvD7-iYb0-0E3L-zeP6GF
sr0
在将数据写入磁盘分区之前,必须使用某种文件系统对磁盘进行格式化,这样Linux才能使用它。
常见创建文件系统命令
命令 | 功能 |
---|---|
mkefs | 创建一个ext文件系统 |
mke2fs | 创建一个ext2文件系统 |
mkfs.ext3 | 创建一个ext3文件系统 |
mkfs.ext4 | 创建一个ext4文件系统 |
mkreiserfs | 创建一个ReiserFS文件系统 |
jfs_mkfs | 创建一个JFS文件系统 |
mkfs.xfs | 创建一个XFS文件系统 |
mkfs.zfs | 创建一个ZFS文件系统 |
mkfs.btrfs | 创建一个Btrfs文件系统 |
可以使用type命令确定文件系统命令是否存在
# 检测ext4文件系统创建命令是否存在
[root@vm14 ~]# type mkfs.ext4
mkfs.ext4 是 /usr/sbin/mkfs.ext4
将1.2中创建的磁盘分区sdb1格式化为ext4文件系统
[root@vm14 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
# 再次查看分区信息,sdb1的文件系统格式已经变更为ext4
[root@vm14 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs dea185f7-ab7d-4f94-9bc8-7b536de87f87 /boot
└─sda2 LVM2_member Kqr800-3veA-yAKZ-Xe32-5V4H-oHL5-Yj5gEd
├─centos-root xfs 4c096052-0d2d-4a44-82f7-7dfea2f4bf9c /
├─centos-swap swap f3ac5611-82da-4b55-9117-908e4e469f17 [SWAP]
└─centos-home xfs 11582d8b-b548-4aa9-be57-10ba990c7e16 /home
sdb
└─sdb1 ext4 46afa4d9-4087-4f9b-bfcd-736923aa8b77
sr0
将sdb1分区挂载到目录/data01下
# 创建/data01目录
[root@vm14 ~]# mkdir /data01
# 挂载分区到目录
[root@vm14 ~]# mount /dev/sdb1 /data01/
# 查看挂载情况
[root@vm14 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 2.0G 49G 4% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
/dev/mapper/centos-home 67G 33M 67G 1% /home
tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 2.0G 6.0M 1.8G 1% /data01
# 从返回信息中可知,sdb1分区已经挂载到/data01目录,大小为2G
fsck命令能够检查和修复大部分类型的Linux文件系统,包括本章早些时候讨论过的ext、ext2、 ext3、 ext4、 ReiserFS、 JFS和XFS。该命令的格式是:fsck options filesystem