欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

教程:通过示例代码掌握创建和挂载ext4文件系统的方法

最编程 2024-08-14 22:30:57
...

什么是Ext4文件系统?

ext4或第四扩展文件系统是一个广泛使用的Linux日志文件系统。ext4文件系统是ext3文件系统的一个可扩展的扩展。它被设计为ext3文件系统的渐进式修订,并克服了ext3中的一些限制。

安装后,有时需要创建一个新的文件系统。例如,如果你在系统中添加了一个新的磁盘驱动器,你可能想对该驱动器进行分区,并使用ext4文件系统。

这个博客的一些先决条件是:

  1. 我假设你已经在你的Linux机器上添加了一个新的硬盘或笔式驱动器,你将在其中创建新的ext4分区,并且
  2. 以根用户的身份运行所有的命令。

创建一个Ext4文件系统

  1. 首先通过使用以下方法列出分区 **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文件系统。