我试图在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函数能不能工作.
任何想法都可以解决这个问题.
提前谢谢!
发布于 2022-10-25 18:17:14
解决办法:
Slackware将/dev/sda1的挂载点在/etc/mtab中自动设置为/dev/root,但/dev/root是一个虚拟设备,不存在于/dev文件夹中。Xmobar试图访问设备/dev/root,但没有找到它。
最简单的解决方案是在系统启动时创建一个指向/dev/root的符号链接。在本例中,在Slackware中,编辑文件/etc/rc.d/rc.local并添加:
ln -s /dev/sda1 /dev/root问题解决了!
发布于 2022-10-24 23:14:36
包含以下内容的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
-- ...
]
-- ...
}https://stackoverflow.com/questions/74186524
复制相似问题