我只是格式化的东西。一张磁盘我格式化为 ext2。另一个我想格式化为ext4。我想测试他们的表现。
现在,我如何知道分区中的文件系统类型?
我刚刚阅读了 的Birth部分,stat似乎 ext4 应该支持它,但即使是我刚刚创建的文件也将其留空。
~ % touch test slave-iv
~ % stat test.pl slave-iv
File: ‘test.pl’
Size: 173 Blocks: 8 IO Block: 4096 regular file
Device: 903h/2307d Inode: 41943086 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/xenoterracide) Gid: ( 100/ users)
Access: 2012-09-22 18:22:16.924634497 -0500
Modify: 2012-09-22 18:22:16.924634497 -0500
Change: 2012-09-22 18:22:16.947967935 -0500
Birth: -
~ % sudo tune2fs -l /dev/md3 | psp4 slave-iv
tune2fs 1.42.5 (29-Jul-2012)
Filesystem volume name: home
Last mounted on: /home
Filesystem UUID: …Run Code Online (Sandbox Code Playgroud) 有没有办法告诉内核现在返还可用磁盘空间?就像在 /proc/ 中写入内容一样?使用 Ubuntu 11.10 和 ext4。
这可能是一个古老而重复的主题。只有当我的编辑器无法保存我打开的源代码文件时才注意到 0 空间后,令我恐惧的是文件夹列表中现在有 0 字节大小,我继续疯狂删除。
我从用户和 root 中删除了 100 MB 的大文件,并且还做了一些硬链接。
就在我这样做之前apt-get clean,/var/cache/apt/archives 中有超过 900MB,现在只有 108KB:
# du
108 /var/cache/apt/archives
Run Code Online (Sandbox Code Playgroud)
一个小时后仍然没有可用空间并且无法保存我在编辑器中打开的宝贵文件,但请注意以下差异:
# sync; df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda4 13915072 13304004 0 100% /
Run Code Online (Sandbox Code Playgroud)
有什么建议?我关闭了一些服务/进程,但不确定如何检查谁可能正在积极占用磁盘空间。
更多信息
# dumpe2fs /dev/sda4
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 884736
Block count: 3534300
Reserved block count: 176715
Free blocks: 422679
Free inodes: 520239
First …Run Code Online (Sandbox Code Playgroud) 我不是在谈论恢复 已删除的文件,而是在谈论覆盖的文件。即通过以下方法:
# move
mv new_file old_file
# copy
cp new_file old_file
# edit
vi existing_file
> D
> i new_content
> :x
Run Code Online (Sandbox Code Playgroud)
假设 linux 机器上没有安装特殊程序,如果执行上述三个操作中的任何一个,是否可以检索任何内容?
最近,我的外部硬盘驱动器机箱出现故障(硬盘驱动器本身在另一个机箱中通电)。然而,结果是,它的 EXT4 文件系统似乎已损坏。
该驱动器具有单个分区并使用 GPT 分区表(带有标签ears)。
fdisk -l /dev/sdb 显示:
Device Boot Start End Blocks Id System
/dev/sdb1 1 1953525167 976762583+ ee GPT
Run Code Online (Sandbox Code Playgroud)
testdisk 显示分区完好无损:
1 P MS Data 2049 1953524952 1953522904 [ears]
Run Code Online (Sandbox Code Playgroud)
...但分区无法挂载:
$ sudo mount /dev/sdb1 a
mount: you must specify the filesystem type
$ sudo mount -t ext4 /dev/sdb1 a
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
Run Code Online (Sandbox Code Playgroud)
fsck 报告无效的超级块:
$ sudo fsck.ext4 /dev/sdb1
e2fsck 1.42 (29-Nov-2011)
fsck.ext4: Superblock invalid, trying backup blocks... …Run Code Online (Sandbox Code Playgroud) 如果在 ext4 分区中超过 40 亿个文件的限制,例如传输 50 亿个文件,会发生什么?
我正在运行 Arch Linux,并使用 ext4 文件系统。
当我ls在一个现在实际上很小但曾经很大的目录中运行时 - 它会挂起一段时间。但是下次我运行它时,它几乎是瞬间的。
我试着做:
strace ls
Run Code Online (Sandbox Code Playgroud)
但老实说,我不知道如何调试输出。如有必要,我可以发布它,尽管它超过 100 行。
而且,不,我没有使用任何别名。
$ type ls
ls is hashed (/usr/bin/ls)
$ df .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda9 209460908 60427980 138323220 31% /home
Run Code Online (Sandbox Code Playgroud) Ext4 的默认日志模式是data=ordered,根据文档,这意味着
“在将元数据提交到日志之前,所有数据都被直接强制输出到主文件系统。”
但是,还有一个data=journal选项,这意味着
“所有数据在写入主文件系统之前都会提交到日志中。启用此模式将禁用延迟分配和 O_DIRECT 支持。”
我对此的理解是,该data=journal模式将记录所有数据以及元数据,从表面上看,这似乎意味着这是就数据完整性和可靠性而言最安全的选择,尽管对于性能而言可能不是那么多。
如果可靠性是最重要的,但性能要低得多,我应该选择这个选项吗?使用此选项有什么注意事项吗?
作为背景,有问题的系统在 UPS 上,并且驱动器上的写缓存被禁用。
我有一个通过 LUKS 加密的外部硬盘驱动器。它包含一个 ext4 fs。
我刚刚从 rsync 收到一个错误,用于位于此驱动器上的文件:
rsync: readlink_stat("/home/some/dir/items.json") failed: Structure needs cleaning (117)
Run Code Online (Sandbox Code Playgroud)
如果我尝试删除该文件,则会出现相同的错误:
rm /home/some/dir/items.json
rm: cannot remove ‘//home/some/dir/items.json’: Structure needs cleaning
Run Code Online (Sandbox Code Playgroud)
有谁知道我可以做些什么来删除文件并修复驱动器/文件系统的相关问题(如果有的话)?
我有一个非常高密度的容器虚拟化环境,所以我试图让每个容器都非常小。“非常小”意味着在基本Ubuntu 14.04 (Trusty Tahr)上有 87 MB,而不会破坏包管理器的兼容性。
所以我使用LVM作为容器的后备存储,最近我发现了非常奇怪的数字。他们来了。
让我们创建一个 100 MiB(是的,2 的幂)逻辑卷。
sudo lvcreate -L100M -n test1 /dev/purgatory
Run Code Online (Sandbox Code Playgroud)
我想检查尺寸,所以我发出 sudo lvs --units k
test1 purgatory -wi-a---- 102400.00k
Run Code Online (Sandbox Code Playgroud)
太好了,这真的是 100 MiB。
现在让我们制作一个ext4文件系统。当然,我们记住了-m 0防止空间浪费的参数。
sudo mkfs.ext4 -m 0 /dev/purgatory/test1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008 …Run Code Online (Sandbox Code Playgroud) ext4 ×10
filesystems ×3
ext3 ×2
linux ×2
bash ×1
df ×1
disk-usage ×1
ext2 ×1
files ×1
ls ×1
proc ×1
rm ×1
stat ×1
superblock ×1
ubuntu ×1