我只是格式化的东西。一张磁盘我格式化为 ext2。另一个我想格式化为ext4。我想测试他们的表现。
现在,我如何知道分区中的文件系统类型?
有没有办法告诉内核现在返还可用磁盘空间?就像在 /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) 我有一个关于块大小和簇大小的问题。关于我所读到的内容,我假设如下:
如果我有以下输出:
$ stat test
File: `test'
Size: 13 Blocks: 4 IO Block: 2048 regular file
Device: 700h/1792d Inode: 15 Links: 1
Run Code Online (Sandbox Code Playgroud)
大小是以字节为单位的实际空间,块是物理使用的块(每个 512 字节),IO 块与创建 FS 时指定的块大小有关,这是否正确?
每隔一段时间,一些应用程序就会疯狂运行并用大量文件填充目录。一旦我们修复了错误并清理了文件,即使其中只有 20-30 个文件,目录也会保持大 (>50MB)。
是否有一些命令可以压缩目录而无需重新创建它?
加分项:巨大的空目录会影响该目录的访问性能吗?我假设它确实如此,但也许它不值得打扰。ls在这样的目录上做似乎更慢。
我有一个未收到 UUID 的 USB 驱动器。当我查看 /dev/disk/by-uuid 的内容时,它不存在。分区所在的开发点位于 /dev/sdb 上。我可以在 /dev/disk/by-path 下看到 sdb。此外,当使用 blkid 时,我的输出为零。我假设我收到了返回的错误代码。
有没有办法获得这个分区的 UUID?
的结果 fdisk -l /dev/sdb:
Disk /dev/sdb: 320.1 GB, 320072932352 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142446 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00082145
Device Boot Start End Blocks Id System
/dev/sdb1 2048 625141759 312569856 83 Linux
Run Code Online (Sandbox Code Playgroud)
分区表和分区是用gparted创建的,所以它被分区并运行命令mkfs.ext3。
fsck -n …
出于配置审核的原因,我希望能够在我的 ext3 文件系统中搜索具有不可变属性集(通过chattr +i)的文件。我找不到任何find可以执行此操作的选项或类似选项。在这一点上,恐怕我必须编写自己的脚本来解析lsattr每个目录的输出。是否有提供更好方法的标准实用程序?
在为包含 flac 格式的视频和音频等大文件的分区创建文件系统时,使用-T largefile标志有用吗?
我使用该标志和不使用该标志测试了相同的分区,并使用tune2fs -l [partition],我检查了启用了“large_file”的“文件系统功能”。那么,没有必要使用-T 标志 largefile吗?
过去我做过很多晦涩的系统优化,但在我powertop告诉我应该将 USB 端口设置为autosuspend后,我摆脱了其中的大部分,这迫使它们永久休眠,并且在我意识到更高swappiness的好处之后.
但是今天,在查看 时/etc/fstab,我注意到我已经commit=60为/和/home设置了选项。我记得这是对笔记本电脑的优化,以减少对磁盘的写入量,从而节省电池。但后来我开始担心这可能会导致数据丢失(有时我的电池断开连接,然后在启动时fsck告诉我几个孤立的 inode)。
在寻找这个选项的解释时,我得出了以下解释(第二个似乎与我之前的理解相矛盾):
$ man mount | awk '/commit=/,/^$/'
commit=nrsec
Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
Zero means default.
Run Code Online (Sandbox Code Playgroud)
https://forums.gentoo.org/viewtopic-p-4088752.html
commit=60 停止“立即”(默认为 5 秒)写入优先级,在几秒钟后缓存写入。这在重读和写混合在一起的情况下是很好的,在这种情况下,用户希望读取优先,以便处理器可以保持忙碌而不是在等待写入完成之前暂停,然后才能继续读取。
我见过的一个真实世界的例子是等待几秒钟 Gnome 下拉菜单出现,似乎没有任何原因。原因是磁盘忙于写入,因此CPU必须等待写入完成才能从磁盘中获取所有数据才能显示菜单。
提交到底有什么作用?增加它真的有好处吗(比如响应能力和节能)?它真的会导致数据丢失吗?
如果在包含一个字母的文件上运行 ls -l,它的大小将显示为 2B。如果您的文件系统是 4k 块,我认为它会将文件四舍五入到块大小?是不是因为 ls -l 实际上是从 inode 读取字节数?在 Linux 2.6 Kernel GNU utils 中,您在什么情况下会被四舍五入以阻止答案与实际字节数答案?
我有一个嵌入式设置,使用 initramfs 作为根文件系统,但使用安装在紧凑型闪存 IDE 驱动器上的自定义 ext3 分区。因为面对断电时的数据完整性是整个设置中最重要的因素,所以我使用了以下选项进行挂载(以下是我的/etc/fstab文件中的条目
<file system> <mount pt> <type> <options> <dump><pass>
/dev/sda2 /data ext3 auto,exec,relatime,sync,barrier=1 0 2
Run Code Online (Sandbox Code Playgroud)
我通过在互联网上阅读这些选项获得了这些选项。我担心的是,/proc/mounts给出以下内容:
/dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl,
barrier=1,data=writeback 0 0
Run Code Online (Sandbox Code Playgroud)
我从阅读中了解到,我想data=journal为我的挂载使用选项,因为这提供了最好的数据损坏保护。但是,从特定 ext3 选项的手册页中,mount它对写回选项进行了以下说明:
不保留数据排序 - 数据可能会在其元数据提交到日志后写入主文件系统。
据传这是最高吞吐量的选择。它保证内部文件系统的完整性,但是它可以允许旧数据在崩溃和日志恢复后出现在文件中。
我对此感到非常困惑 - 手册页似乎表明为了文件系统完整性,我想指定data=writeback选项,mount但我发现的大多数其他参考文献(包括一些关于嵌入式 linux 的已出版书籍)建议我应该使用data=journal. 我使用的最佳方法是什么?写入速度根本不是问题——数据完整性才是问题。
ext3 ×10
ext4 ×4
filesystems ×4
mount ×3
ext2 ×2
fstab ×2
linux ×2
block-device ×1
df ×1
disk ×1
disk-usage ×1
find ×1
journaling ×1
large-files ×1
ls ×1
proc ×1
terminology ×1
uuid ×1