当我使用 Ubuntu netinst 时,这个问题出现在我的脑海中。问题是:保留5%是一种运行时吗?我的意思是,当执行 sudo apt install 之类的操作时 - 这 5% 此刻已被 root 使用?系统在运行时会使用这 5% 吗?我是否必须将其增加到 10-15%,例如?我有 300GB 硬盘。通常我只进行交换和 / 分区(不使用单独的 /home、/var 或其他分区)。
我想知道 2020 年是否有方法复制或恢复 Linux 中 inode/文件/目录的 crtime(创建时间)。我不小心删除了一个文件夹,而我仍然有完整的磁盘备份,但 cp -a 和 rsync 都没有可以恢复/复制文件/目录crtimes。
我找到了一种使用 debugfs 来实现它的方法,但它非常复杂,我需要自动化它(我有数百个已删除的文件/目录)。
对于源磁盘,您可以执行以下操作:
# debugfs /dev/sdXX
# stat /path
Inode: 432772 Type: directory Mode: 0700 Flags: 0x80000
Generation: 3810862225 Version: 0x00000000:00000006
User: 1000 Group: 1000 Project: 0 Size: 4096
File ACL: 0
Links: 5 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5db96479:184bb16c -- Wed Oct 30 15:22:49 2019
atime: 0x5b687c70:ee4dff18 -- Mon Aug 6 21:50:56 2018
mtime: 0x5db96479:184bb16c -- Wed Oct 30 15:22:49 2019 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Debian 11 Kernel 5.10 上启用日志 usrquota。我找到的所有信息都使用外部文件,这会导致以下弃用警告:
quotaon: Your kernel probably supports ext4 quota feature but you are using external quota files. Please switch your filesystem to use ext4 quota feature as external quota files on ext4 are deprecated.
Run Code Online (Sandbox Code Playgroud)
我的 fstab 条目使用据errors=remount-ro,usrjquota=aquota.user,jqfmt=vfsv1
我所知应该启用 ext4 qouta 功能的选项。但是,重新启动后,当我运行时,sudo quotaon -v /我收到弃用警告并抱怨缺少 aquota.user 文件。
让我困惑的是:为什么我必须为 usrjquota 指定一个文件名...据我了解,日志配额的要点是我们不再需要文件了。
如果有人可以提供启用日志 ext4 配额的步骤,我们将不胜感激。
我有一个硬盘。我想使用一个可以减少存储空间的文件系统,但作为权衡,请为我提供校验和或任何其他方法来帮助保持数据完整性。
据我了解,像 ext4 或 xfs 这样的东西不会这样做,因此您可能会遭受静默数据损坏,又名 bitrot。
zfs 看起来是一个很好的选择,但我读到的所有内容都表明您需要多个磁盘才能使用它。为什么是这样?我意识到只有一个磁盘无法容忍单个磁盘故障,但这就是多个备份方案的用途。备份无济于事的是像 bitrot 这样的东西。
那么我可以在单个硬盘上使用 zfs 来实现防止 bitrot 的单一目的吗?如果没有,你有什么推荐?
太长了;
在 EXT4 术语中,“块组”和“范围”是同一件事吗?
[编辑] 建议的“范围”功能在 Linux 的 ext4 文件系统中做什么?讨论并不能回答这个问题。虽然它清楚地解释了“范围”是什么,但它没有谈论“块组”,以及它是否是同一件事(它不是:请参阅下面的答案)。
细节
在这篇文章中,他们讨论了块组的结构:

根据维基百科,范围是块的范围。
这两个概念是同一件事,只是使用不同的名称吗?
直到最近,我认为在 ext 文件系统上,inode 具有引用计数器,用于计算目录条目或文件描述符引用文件的次数。
然后,我了解到引用计数器只计算引用它的目录条目的数量。为了伪造这一点,我使用ls -l. 正如我所料,它是 1,因为我没有创建任何额外的硬链接。然后我用视频播放器打开视频文件并再次执行相同的命令。令我惊讶的是,引用计数仍然是 1。因此,我无法伪造。
但是,在删除其唯一的目录条目后,我绝对可以继续观看视频。打开大视频文件并删除其目录条目时,文件系统上的可用存储空间量不会改变。它仅在播放器到达视频末尾并关闭文件描述符或播放器自行终止(取决于所使用的视频播放器)时才会更改(根据视频文件的大小)。
在 ext 文件系统上释放文件的确切条件是什么?我对它在 ext2、ext3 和 ext4 中的处理方式很感兴趣。根据使用的内核或操作系统的其他部分,是否存在差异?
有没有办法找出已卸载文件系统的已用大小?
我想调整 ext4/文件系统的大小,所以我使用 Lubuntu 可启动闪存驱动器启动到实时 Lubuntu。由于/文件系统没有挂载,我不知道我可以缩小多少。
谢谢。
如何为目录创建图像文件?例如:
通过终端命令从文件夹创建 iso 映像显示genisoimage可以为目录创建 iso 映像文件。我只知道为磁盘卷创建了一个图像文件。是否genisoimage先为目录创建循环设备或块设备文件(类似于 CD/DVD),然后为循环设备或块设备文件创建映像文件?它是否与将图像文件挂载到需要首先为图像文件创建循环设备的目录的两步过程完全相反(类似于losetup命令)?
是否有可以为目录创建 ext4 图像文件的命令?它也是一个两步过程吗?
还可以为目录创建存档文件。这两个过程有何不同?为目录创建图像文件是否涉及循环设备,而为目录创建存档文件则不涉及?
我存储所有数据的两个硬盘都出现故障。我的系统突然拒绝加载磁盘和安装分区。我将一个硬盘驱动器移到另一台计算机,在那里它被识别的麻烦较少,但分区有很多错误,并且我仍然在该驱动器的 dmesg 上收到 E/S 错误。
用于启动的分区有一个坏的超级块,但可以用另一个超级块读取它,在那里它显示更多错误,所以我首先在外部硬盘驱动器上对该分区进行了主备份。由于这个原因,我对 ddrescue 进行了两次传递,根据日志,它退出时只有一个 512 字节的错误,我认为这是有希望的。
使用 lsblk 列出备份看起来更有希望:
损坏分区的 lsblk 显示:
$lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
...
sda
??sda1
...
Run Code Online (Sandbox Code Playgroud)
现在主人显示的地方:
sdc
??sdc1 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
Run Code Online (Sandbox Code Playgroud)
现在我从这个主分区到同一个驱动器的末尾做了另一个备份,所以 lsblk 的实际输出将是:
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
loop0 squashfs /snap/anbox-installer/25
loop2 squashfs /snap/core/9669
loop3 squashfs /snap/core/10911
sda
??sda1
sdb
??sdb1 ext4 Debian_copia ce2c8e8f-f3ef-4005-9cb1-0bb9d5870f43 /
??sdb2 swap d60a8ad0-5528-4bbc-af5e-092b96282df4 [SWAP]
sdc
??sdc1 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
??sdc2 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
sr0
Run Code Online (Sandbox Code Playgroud)
现在这里是遗漏的地方,我把 fsck 的选项 p 误认为选项 …
我有一个健康的文件系统,但我无法在其上运行tune2fs:
# tune2fs -l /dev/sda1
tune2fs 1.42.9 (28-Dec-2013)
tune2fs: Bad magic number in super-block while trying to open /dev/sda1
Couldn't find valid filesystem superblock.
Run Code Online (Sandbox Code Playgroud)