haskell Xmobar DiskU无法在Slackware 15中获得根分区信息

pbpqsu0x  于 2022-11-14  发布在  其他
关注(0)|答案(2)|浏览(139)

我试图在Xmobar中显示根分区的使用情况(使用XMonad),但是没有工作!!没有任何详细或错误消息。我不知道问题是Slackware加载根分区的方式还是xmobar的工作方式。解释上下文:磁盘有三个分区:"swap", "/" and "/home"

/dev/sda1 is the /
/dev/sda2 is the swap
/dev/sda3 is the /home

在Slackware中,系统创建一个"/dev/sda1"的虚拟挂载点,将其称为"/dev/root",挂载点为"/"
在Xmobar(.xmobarrc文件)中,以下任何选项都不起作用:

- Run DiskU [ ( "/", "<size>" ) ] [] 20
- Run DiskU [ ( "root", "<size>" ) ] [] 20
- Run DiskU [ ( "/dev/root", "<size>" ) ] [] 20
- Run DiskU [ ( "sda1", "<size>" ) ] [] 20
- Run DiskU [ ( "/dev/sda1", "<size>" ) ] [] 20

和呼叫

- Run DiskU [ ( "/", "<size>" ), ("/home", "<size>") ] [] 20

其中"/home""/dev/sda3"分区,可以正常工作以获取有关"/home"的信息
在阅读Xmobar源代码时,我看到可用分区的列表是从"/etc/mtab"中读取的。在我的例子中,"/etc/mtab"有下面的分区列表:

/dev/root / ext4 rw,relatime 0 0
...
/dev/sda3 /home ext4 rw,relatime 0 0

但是我不知道DiskU功能是否正常...
任何解决这个问题的想法都是受欢迎的。
先谢谢你!

8e2ybdfx

8e2ybdfx1#

mount 表 包含

/dev/sda1 / ext4 rw,relatime 0 0
# ...
/dev/sda3 /home ext4 rw,relatime 0 0

中 的 每 一 个
沿着 这些 路线 的 xmobar 配置 实际 上 应该 工作 :

Config
  { -- ...
  , template = "... %disku% ..."
  -- ...
  , commands =
    [ -- ...
    , Run DiskU
      [ ( "/",     "Root: <usedp> (<used>/<size>)")
      , ( "/home", "Home: <usedp> (<used>/<size>)")
      ]
      [] 20
    -- ...
    ]
  -- ...
  }

格式

jmp7cifd

jmp7cifd2#

解决方案:

Slackware在/etc/mtab中自动将/dev/sda1的挂载点设置为/dev/root,但/dev/root是一个虚拟设备,不存在于/dev文件夹中。Xmobar尝试访问设备/dev/root,但没有找到它。
最简单的解决方案是在系统启动时创建一个指向/dev/root的符号链接。

ln -s /dev/sda1 /dev/root

问题解决了!

相关问题