教程:通过示例代码掌握创建和挂载ext4文件系统的方法
什么是Ext4文件系统?
ext4或第四扩展文件系统是一个广泛使用的Linux日志文件系统。ext4文件系统是ext3文件系统的一个可扩展的扩展。它被设计为ext3文件系统的渐进式修订,并克服了ext3中的一些限制。
安装后,有时需要创建一个新的文件系统。例如,如果你在系统中添加了一个新的磁盘驱动器,你可能想对该驱动器进行分区,并使用ext4文件系统。
这个博客的一些先决条件是:
- 我假设你已经在你的Linux机器上添加了一个新的硬盘或笔式驱动器,你将在其中创建新的ext4分区,并且
- 以根用户的身份运行所有的命令。
创建一个Ext4文件系统
- 首先通过使用以下方法列出分区
**fdisk -l**
或**parted -l**
命令来确定你要分区的硬盘。
我正在使用我的16GB笔电,我将把它作为我系统中的一个驱动器:
$ parted -l
上述命令的输出是:
Model: ATA WDC WD5000LPCX-6 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 500GB 500GB ext4
Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdb: 15.6GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 15.6GB 15.6GB fat32
看一下上面的输出,我们有一个硬盘添加到系统中,我们将有分区磁盘/dev/sdb,名称为SanDisk Cruzer Blade(scsi),其文件系统为fat-32。
现在我们使用parted命令开始在选定的存储设备上创建分区:
$ parted /dev/sdb
上述命令的输出是:
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
给新的磁盘贴上标签,使用 **mklabel**
命令给新磁盘贴上标签:
$ (parted) mklabel msdos
上述命令的输出结果是:
Warning: Partition(s) on /dev/sdb are being used.
Ignore/Cancel? Ignore
Warning: The existing disk label on /dev/sdb will be destroyed and all
data on this disk will be lost. Do you want to continue?
Yes/No? yes
现在用命令创建一个分区 **mkpart**
命令创建一个分区,根据你想创建的分区类型,给它附加一些参数,如 "主 "或 "逻辑"。现在选择ext4作为文件系统类型。设置开始和结束以确定分区的大小:
$ (parted) mkpart
上述命令的输出结果是:
Partition type? primary/extended? primary
File system type? [ext2]? ext4
Start? 1
End? 14500
(parted)
如果你看到我们的空间从1开始到14500结束,因为我们需要为 "预分配 "开销留出一些空间。
要打印设备/dev/sdb上的分区表或关于新分区的详细信息,请运行 **print**
命令:
$ (parted) print
上述命令的输出结果是:
Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdb: 15.6GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 14.5GB 14.5GB primary ext4 lba
现在用 **quit**
命令退出程序。
格式化新的Ext4分区
接下来,你需要正确地将新的分区格式化为ext4文件系统类型,使用 **mkfs**
或 **mke4fs**
命令将新的分区正确地格式化为ext4文件系统类型,如下所示:
$ mkfs.ext4 /dev/sdb1
上述命令的输出结果是:
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 3539712 4k blocks and 885952 inodes
Filesystem UUID: 99ba66f4-e976-492a-9d77-1b5bc6640400
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
我们可以用 **e4label**
和 **e2label**
命令,如下所示:
$ e2label /dev/sdb1 disk2-part1
在文件系统中挂载新的Ext4分区
接下来,创建一个挂载点并挂载新创建的分区文件系统:
$ mkdir /mnt/disk2-part1
$ mount /dev/sdb1 /mnt/disk2-part1
现在我们用 **df
**命令来列出我们系统上的所有文件系统,以及它们的尺寸,以人类可读的格式(-h),以及它们的挂载点和文件系统类型(-T):
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs tmpfs 340M 3.5M 336M 2% /run
/dev/sda2 ext4 457G 40G 394G 10% /
tmpfs tmpfs 1.7G 392M 1.3G 24% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
/dev/loop0 squashfs 2.3M 2.3M 0 100% /snap/gnome-system-monitor/145
/dev/loop8 squashfs 56M 56M 0 100% /snap/core18/1885
/dev/loop3 squashfs 83M 83M 0 100% /snap/scrcpy/238
/dev/loop7 squashfs 2.5M 2.5M 0 100% /snap/gnome-calculator/748
/dev/loop2 squashfs 162M 162M 0 100% /snap/gnome-3-28-1804/128
/dev/loop6 squashfs 97M 97M 0 100% /snap/core/9665
/dev/loop5 squashfs 83M 83M 0 100% /snap/scrcpy/243
/dev/loop9 squashfs 55M 55M 0 100% /snap/core18/1880
/dev/loop13 squashfs 291M 291M 0 100% /snap/vlc/1700
/dev/loop4 squashfs 55M 55M 0 100% /snap/gtk-common-themes/1502
/dev/loop10 squashfs 97M 97M 0 100% /snap/core/9804
/dev/loop11 squashfs 1.0M 1.0M 0 100% /snap/gnome-logs/93
/dev/loop14 squashfs 2.3M 2.3M 0 100% /snap/gnome-system-monitor/148
/dev/loop12 squashfs 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop1 squashfs 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop15 squashfs 1.0M 1.0M 0 100% /snap/gnome-logs/100
/dev/loop17 squashfs 164M 164M 0 100% /snap/spotify/41
/dev/loop16 squashfs 384K 384K 0 100% /snap/gnome-characters/550
/dev/loop18 squashfs 4.4M 4.4M 0 100% /snap/gnome-calculator/704
/dev/loop19 squashfs 291M 291M 0 100% /snap/vlc/1620
/dev/loop20 squashfs 384K 384K 0 100% /snap/gnome-characters/539
/dev/sda1 vfat 511M 6.1M 505M 2% /boot/efi
tmpfs tmpfs 340M 20K 340M 1% /run/user/121
tmpfs tmpfs 340M 72K 340M 1% /run/user/1000
tmpfs tmpfs 340M 0 340M 0% /run/user/0
/dev/sdb1 ext4 14G 41M 13G 1% /mnt/disk2-part1
最后一条是我们新创建的ext4文件系统,现在你可以用它来存储你的数据:
=>/dev/sdb1 ext4 14G 41M 13G 1% /mnt/disk2-part1
最后,在你的/etc/fstab
中添加以下条目,以使文件系统能够持续挂载,即使在重启后也是如此:
$ sudo vim /etc/fstab
/dev/sdb1 /mnt/disk2-part1 ext4 defaults 0 0
总结
在这篇博客中,我们展示了如何创建一个新的ext4文件系统(分区)以及如何加载它。我希望这篇博客对你创建和挂载ext4文件系统有帮助,甚至你可以自己尝试创建ext3文件系统。