小编Tom*_*ale的帖子

什么是 readline 的模式、键盘映射及其默认绑定?

readline的模式和键盘映射之间有什么区别?

如何找到每种模式的默认键绑定?

shell readline

6
推荐指数
1
解决办法
1302
查看次数

VMware:为什么需要零填充 ext4 可用空间来缩小 *.vmdk 文件?

在我的 Linux Mint 17.2 VMware 来宾上,df -h报告我的总磁盘使用量稳定在 10GB 左右。我正在使用这台机器在运行 Workstation 12.1.1 Pro 的 Windows 主机中进行 Ruby on Rails 开发。

*.vmdk文件保存在稳步增长到大约100GB。试图缩小vmware-vdiskmanager -kvmware-toolbox-cmd disk shrinkonly没有任何区别。

我有Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize。有更完整的dumpe2fs输出可用

正在运行e4defrag /并且e2fsck -E discard不允许回收更多空间(在前几个 vmdks(从 6GB 左右开始)显示没有缩小的迹象后,我终止了缩小。)

最终的诀窍是用NUL字节填充所有可用空间:

dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

我现在可以*.vmdk使用vmware-toolbox-cmd disk shrinkonly …

ext4 vmware

6
推荐指数
1
解决办法
7454
查看次数

LUKS 丢弃/TRIM:冲突的内核命令行选项

我的各种方式之间的混淆LUKS/ dmcrypt/cryptsetup丢弃/ TRIM操作可以通过Linux的内核命令行来实现。

  1. dracut手册页

    rd.luks.allow-discards

    允许在所有 LUKS 分区上使用丢弃 (TRIM) 请求。

  2. systemd-cryptsetup-generator手册页

    luks.options=, rd.luks.options=

    ... 如果只指定了没有 UUID 的选项列表,则它们适用于其他地方未指定的任何 UUID,并且 /etc/crypttab 中没有条目。...

    此处rd.luks.options=discard推荐该参数。

  3. 关于 LUKS 和 SSDArch wiki 部分 显示了第三个以冒号分隔的字段:

    cryptdevice=/dev/sdaX:root:allow-discards

问题:

  1. discard和 和有allow-discards什么区别?前者是强制性的,后者是可选的吗?
  2. luks.options=rd.luks.options=申请给定cryptdevice=/dev/sda2(例如不是 UUID)?如果cryptdevice=给了一个 UUID,那算不算“在别处指定的”?
  3. 请问luks.options=rd.luks.options=覆盖/添加/添加如果cryptsetup=已经给出了选择?
  4. rd.luks.allow-discards如果到处都需要 TRIM,那么使用似乎最简单的方法有什么缺点吗?

dm-crypt luks cryptsetup kernel-parameters

6
推荐指数
1
解决办法
4220
查看次数

在 ls -l 输出中查看带有“+”的文件的扩展 ACL

ls -l列表中的文件具有以下权限:

-rw-r-----+
Run Code Online (Sandbox Code Playgroud)

如何找到由+?表示的扩展访问控制列表 (ACL) 权限?

ls acl permissions

6
推荐指数
1
解决办法
2万
查看次数

列出当前的 inotify 监视(路径名、PID)

我如何获得以下列表:

  • 当前正在监视的路径名inotify,以及
  • 进程监控的PID

我问是因为我发现syncthing'sinotify手表阻止我的磁盘被卸载。

如下所示,没有任何内容出现在lsoffuser列表中。

我猜对了syncthing......如果磁盘因以下原因无法卸载,我该如何消除未来的猜测inotify


# umount /media/backup
umount: /media/backup: target is busy.
# lsof +f -- /media/backup/
# echo $?
1
# fuser -vmM /media/backup/
                     USER        PID ACCESS COMMAND
/media/backup:       root     kernel mount /media/backup
# systemctl stop syncthing@ravi
# umount /media/backup
# echo $?
0
Run Code Online (Sandbox Code Playgroud)

linux unmounting lsof inotify fuser

6
推荐指数
1
解决办法
6528
查看次数

绝对/规范/相对路径

绝对/规范/相对路径之间有什么区别?

我想绝对以/. 可以包含/../吗?

规范路径与绝对路径的不同之处在于它不能包含/../

foo相对路径吗?

谷歌搜索posix canonical path并没有出现太多......这些术语的POSIX参考是什么?

filesystems posix

6
推荐指数
1
解决办法
1688
查看次数

使用 zswap 和 max_pool_percent = 100 防止 zram LRU 反转

使用 zram 的主要缺点是LRU 反转

较旧的页面进入优先级较高的 zram 并快速填充它,而较新的页面被换入和换出较慢的 [...] 交换

zswap文件说,zswap不会从此苦:

Zswap 通过 Frontswap API 接收要压缩的页面,并且能够在 LRU 的基础上从其自己的压缩池中驱逐页面,并在压缩池已满的情况下将它们写回后备交换设备。

通过设置max_pool_percent为,我可以拥有 zram 的所有好处和完全压缩的 RAM100吗?

Zswap seeks to be simple in its policies.  Sysfs attributes allow for one user
controlled policy:
* max_pool_percent - The maximum percentage of memory that the compressed
    pool can occupy.
Run Code Online (Sandbox Code Playgroud)

max_pool_percent这里没有指定默认值,但Arch Wiki 页面说它是20.

除了解压对性能的影响外,设置max_pool_percent为是否有任何危险/不利因素100

它会像使用改进的交换支持的 zram 一样操作吗?

linux swap zram zswap

6
推荐指数
1
解决办法
3438
查看次数

ACPI 区域未覆盖整个命令/响应缓冲区

我遇到系统冻结并在日志中看到内核 ( 4.14.15-1-MANJARO) 错误,例如:

kernel: tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f flags 0x201] vs fed40080 f80
kernel: tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f flags 0x201] vs fed40080 f80
Run Code Online (Sandbox Code Playgroud)

(是的,消息是重复的,时间戳完全相同)

稍后,我得到:

tpm tpm0: A TPM error (379) occurred attempting get random
Run Code Online (Sandbox Code Playgroud)

我正在为我的华硕 UX330 运行最新版本的固件 (v3.05)。我的内核是:

4.16.0-1-MANJARO #1 SMP PREEMPT Wed Mar 21 09:02:49 UTC 2018 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

除了祈祷华硕更新 UEFI / BIOS 固件之外,还有其他解决方法吗?

firmware acpi linux-kernel tpm

6
推荐指数
1
解决办法
2万
查看次数

获取别名的扩展(在 bash 和 zsh 中)

我想获得别名的扩展。

例如,如果我有:

alias g=hub
alias cdh='cd $HOME'
Run Code Online (Sandbox Code Playgroud)

我希望有:

expand_alias g == hub

expand_alias cdh == cd $HOME

棘手的是两个shell有不同的输出:bash:

$ alias g cdh
alias g='git'
alias cdh='cd $HOME'
Run Code Online (Sandbox Code Playgroud)

zsh:

% alias g cdh
g=hub
cdh='cd $HOME'
Run Code Online (Sandbox Code Playgroud)

注意没有alias 前缀,也没有引号hub

shell bash zsh alias

6
推荐指数
2
解决办法
2653
查看次数

zsh 中除 stderr 之外的其他地方的直接 xtrace 输出

在 zsh 中,是否可以将set -x( set -o xtrace)的跟踪输出定向到 stderr 以外的文件描述符?

我正在寻找一种等效的方法$BASH_XTRACEFD或一种模拟相同行为的方法。

debugging zsh

6
推荐指数
1
解决办法
262
查看次数