点击访问 Linux 命令大全 >>
所有的磁盘在使用前都必须经过格式化,格式化就是在目标磁盘上建立文件系统的过程。在 Linux 下,mkfs 命令用于完成这一操作。但是,mkfs 本身并不执行建立文件系统的工作,而是调用相关的程序。这些程序包括 mkdosfs、mke2fs、mkfs.minix 等。
mkfs 命令语法:
[root@localhost ~]# mkfs 用法: mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>] 选项: -t, --type=<类型> 文件系统类型;若不指定,将使用 ext2 fs-options 实际文件系统构建程序的参数 <设备> 要使用设备的路径 <大小> 要使用设备上的块数 -V, --verbose 解释正在进行的操作; 多次指定 -V 将导致空运行(dry-run) -V, --version 显示版本信息并退出 将 -V 作为 --version 选项时必须是惟一选项 -h, --help 显示此帮助并退出 更多信息请参阅 mkfs(8)。
实例:为虚拟机 VMWare 多添加一块硬盘,然后在 Linux 中使用 fsmk 命令创建文件系统,最后再次使用 mount 将文件系统挂载到 /mnt/sdb 下面。详细步骤如下:
(1)打开虚拟机设置页面,点击“添加(A)...”按钮,如下图:
(2)在添加硬件向导中选择“硬盘”,然后点击“下一步”按钮。如下图:
(3)选择默认“SCSI”,然后点击“下一步”按钮。如下图:
(4)选择“创建新虚拟磁盘”选项,然后点击“下一步”按钮。如下图:
(5)设置磁盘容量,这里设置为 10GB,然后点击“下一步”按钮。如下:
(6)指定磁盘文件保存位置,然后点击“完成”按钮。如下图:
(7)到这里,成功添加了一个10GB容量的硬盘2,如下图:
(8)我们去启动 Linux 系统,启动成功后在 VMWare 右下角会出现两个硬盘图标,如下图:
(9)在 Linux 系统中,通过 mkfs 创建一个文件系统,通过 -t 选项指定文件系统,mkfs 会调用特定的程序对磁盘进行格式化。详细步骤如下:
a、使用 ls 和 grep 查看系统中所有的 sd 文件。如下:
[root@localhost ~]# ls /dev/ | grep ^sd sda sda1 sda2 sdb
b、根据上面的结果,明显可以得知 sdb 就是我们刚刚添加的设备;此时,就可以使用 mkfs 创建文件系统。如下:
[root@localhost ~]# mkfs -t ext3 /dev/sdb mke2fs 1.42.9 (28-Dec-2013) /dev/sdb is entire device, not just one partition! 无论如何也要继续? (y,n) y 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 2621440 blocks 131072 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=2684354560 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: 完成 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
c、设备创建完成后,可以使用 df -hT 查看我们刚刚创建的文件系统。如下:
[root@localhost ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 17G 1.3G 16G 8% / devtmpfs devtmpfs 898M 0 898M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 9.6M 901M 2% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 146M 869M 15% /boot tmpfs tmpfs 182M 0 182M 0% /run/user/0
上面我们并没有看见 /dev/sdb,这是因为我们没有将 /dev/sdb 挂载到目录。
d、将 /dev/sdb 挂载到 /mnt/sdb 目录,如下:
[root@localhost ~]# mkdir /mnt/sdb [root@localhost ~]# mount /dev/sdb /mnt/sdb/
e、再次使用 df -hT 查看我们刚刚创建的文件系统。如下:
[root@localhost ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 17G 1.3G 16G 8% / devtmpfs devtmpfs 898M 0 898M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 9.6M 901M 2% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 146M 869M 15% /boot tmpfs tmpfs 182M 0 182M 0% /run/user/0 /dev/sdb ext3 9.8G 23M 9.2G 1% /mnt/sdb
上面最后一行就是我们刚刚创建的磁盘。
f、进入到 /dev/sdb 设备的挂载目录 /mnt/sdb,然后创建文件。查看目录的详细信息,如下:
[root@localhost ~]# cd /mnt/sdb/ [root@localhost sdb]# touch readme.txt [root@localhost sdb]# ll 总用量 16 drwx------. 2 root root 16384 8月 5 06:03 lost+found -rw-r--r--. 1 root root 0 8月 5 06:04 readme.txt [root@localhost sdb]#
另外,可以使用 -c 选项来检查指定设备上损坏的块。
注意:如果硬盘分区已经挂载到文件系统中,那么在格式化之前必须用 umount 命令卸载该分区。