返回

Ext4使用笔记

Ext4文件系统——创建、挂载、修复、恢复删除数据

Ext4 是最常用的 Linux 文件系统 Ext3 的进化

创建

如果分区被用于长期存储或对系统运作并非至关重要,可不创建保留块

mkfs.ext4 -m 0 /dev/设备

# mkfs.ext4 -m 0 /dev/sdc
# -m 0 不创建保留块
# /dev/sdc 可不分区直接使用
# -T largefile usage-type

挂载

查看设备UUID

lsblk -f 显示所有设备的 UUID

[zjh@Arch-Z ~]$ lsblk -f
NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                           
├─sda1 vfat   FAT32       1987-286E                             424.3M    12% /boot
└─sda2 btrfs              3c5a65af-4acf-4105-8052-08c749581b97                /var/lib/docker/btrfs
                                                                              /var/cache/pacman/pkg
                                                                              /var/log
                                                                              /home
                                                                              /.snapshots
                                                                              /
sdb    ext4   1.0         caa5b1b5-b886-4126-bd5e-9489048e33f0   11.7T     7% /mnt/diskZ

修改fstab

修改/etc/fstab自动挂载

sudo vi /etc/fstab

UUID=caa5b1b5-b886-4126-bd5e-9489048e33f0       /mnt/diskZ       ext4    defaults,noatime,nofail 0 0


# defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async
# noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
# nofail    可以在启动时若设备不存在直接忽略它而不报错

ext4(5) MOUNT_OPTIONS

应用自动挂载

mount -a 的意思是将/etc/fstab的所有内容重新加载,会忽略已经完成的挂载。

sudo mount -a

参考资料

修复文件系统损害

Super block

超级块保存了⽂件系统设定的⽂件块⼤⼩、操作函数、inode链表等重要信息。

查看备份块

sudo mkfs.ext4 -n /dev/sdb1(查看备份块时需要将分区卸载)

尝试挂载备份块

当⽂件系统出现损坏时,分区是挂载不上去的,这个时候尝试对分区备份块进⾏挂载,如果该备份超级块块可以被挂载上,并且上⾯数据 没有问题,那么就可以使⽤该备份超级块进⾏修复

sudo mount -t ext4 -o sb=131072 /dev/sdb1 /a        
#以32768为例,block的⼤⼩是4k,⽽mount的sb参数的块⼤⼩是1k,
#所以挂载时需要进⾏单位转换,转换成1k则是32768*4=131072。
#若挂载成功则可以使⽤该备份块进⾏修

尝试使⽤备份块修复⽂件系统

尝试修复前⼀定要先卸载该设备,否则会导致部分数据丢失。且修复过程中需要确认的信息要⾃⼰观察分析,避免丢失数据

sudo fsck.ext4 -b 32768 /dev/sdb1

参考资料:Ext4文件系统修复

直接修复*

sudo fsck -a /dev/sdc

恢复删除数据

使用Foremost

安装

pacman -S foremost

使用

把文件恢复到被删除文件所在的磁盘中不是一个明智的做法。

如果在恢复过程中,占用了被删除文件之前所在的磁盘分区,就可能无法恢复文件。

另外,进行文件恢复操作前不要做任何其他操作。

foremost -t jpg -i 要恢复的设备 -o 恢复出的数据存放路径

# foremost -t all -i /path/to/image -o outputdir
# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued
# -t 文件类型

参考资料