我有一个 256GB 的 SSD 磁盘,我将 ext4 root FS 转换为 btrfs。我删除了 ext4 备份子卷,启用压缩并递归地进行碎片整理以在所有文件上启用它。
btrfs fi df /
有一个让我担心的输出:
Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB
Run Code Online (Sandbox Code Playgroud)
如果我正确理解输出,65GB(我磁盘的 1/4!)保留用于元数据,不可用于存储文件。如果这是正确的,那将是对我磁盘空间的巨大浪费。我理解正确吗?可以调整磁盘的元数据分配部分的大小吗?
我正在使用 zsh 并且非常喜欢它,但是与 Android 源代码一起工作很多,它具有需要正确评估 bash 的编译脚本。这些脚本需要在编译之前获取并定义编译期间使用的环境变量和 shell 函数。
Zsh 无法获取这些文件,并且如果我尝试在emulate bash
每次点击空格时尝试发出我的 shell 变得非功能性并出现大量这些错误(我正在使用 oh-my-zsh,也许这是一个原因?):
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
Run Code Online (Sandbox Code Playgroud)
有没有办法让我不切换到 bash 来评估这些文件,或者调用 bash 实例并将其在采购期间定义的新环境变量/函数导入我的 zsh 会话?或者我注定每次需要在 Android 上工作时都切换到 bash?
编辑:找到了我自己问题的答案。使用另一个 shell 获取文件似乎是不可能的,但是在 Android 宏文件失败的情况下,这个页面带来了一个修复:
http://nilvec.com/building-cyanogen-from-source/
基本上,简单的设置unsetopt nomatch
将要求 zsh 停止抱怨不匹配的通配符,这足以使脚本完成。仍然会留下一个错误,关于使用complete
bash 内部命令为一个 Android 宏添加完成功能,但这里绝对不是关键。