小编Suz*_*Soy的帖子

没有 root 权限的 FUSE fs(例如 LD_PRELOAD 网关或 proot 插件)

在我没有 root 访问权限并且未安装 FUSE 的系统上(或者我没有足够的权限来创建新的挂载),如何启动保险丝文件系统(例如 sshfs 或一些基于 FUSE 的系统) unionfs)并从(通常)任何通过 LD_PRELOAD hack 实现的程序访问它,而不涉及内核或 root 权限?

\n

我正在寻找一种现有的解决方案,例如其中之一(或可以轻松组装以获得其中之一的砖块):

\n
    \n
  • 通往 FUSE 的 LD_PRELOAD 网关?有已经存在的吗?
  • \n
  • 现有的 proot 插件,它将 FS 系统调用转发到 FUSE 文件系统(例如转发到 sshfs/unionfs/\xe2\x80\xa6)
  • \n
  • 转发到 FUSE 的现有插件或另一个虚拟文件系统覆盖的扩展(AVFS、fakechroot、\xe2\x80\xa6)
  • \n
  • 提供名为mylib_openmylib_writemylib_close\xe2\x80\xa6 等函数的库,这些函数将调用转发到 FUSE 文件系统。这使得从源代码(仅#define open mylib_open)编译时修补特定程序或修补 proot、fakechroot、AVFS 或其他一些 vfs 变得相当容易。
  • \n
  • 上述任何一种,使用一个单独的进程来代替内核的角色(保留挂载点和与 FUSE 文件系统的连接,并充当服务器,以便多个客户端进程可以看到相同的 VFS)。
  • \n
  • 我不认为qemu-user可以用来在自己的环境中运行真正的FUSE,因为qemu-user不模拟内核IIUC,并且安装qemu-system现在通常需要root,并且尝试在没有root权限的情况下运行qemu-systemkvm会很慢。
  • \n
\n

我发现了类似的问题,但没有一个解决与现有 …

linux filesystems fuse libraries

7
推荐指数
0
解决办法
998
查看次数

与扇区大小无关的分区表

剧情

我在IcyBox IB-290StUS-B USB/ esata机箱内有一个WD10JPVT 1Tb 磁盘。

  • 当我通过 USB 连接磁盘时,我得到 512 逻辑/512 物理扇区大小。
  • 当我通过计算机的本机 esata 端口连接磁盘时,我得到 512 逻辑/4k 物理扇区大小。
  • 当我通过AKE Hidden USB 3.0 + eSATA II ExpressCard 54mm的 esata 端口连接磁盘时,我得到了 4k 逻辑/4k 物理扇区大小。

问题

问题在于,在 MBR 分区表中,分区的开头和结尾表示为多个(逻辑)扇区。这意味着如果我在通过 expresscard 的 esata 端口插入磁盘时对磁盘进行分区,然后将其插入 USB 端口或本机 esata 端口,则分区将具有错误的偏移量和错误的大小,反之亦然。

fdisk 输出

fdisk下面的命令使用 Ubuntu 11.04 (natty) 运行,并在 Expresscard 上为 USB 和 esata 提供与 XUbuntu 12.04 相同的结果,但我无法测试本机 esata,因为这是我从 Ubuntu 12.04 启动的。

通过 USB 连接:

> sudo fdisk -l /dev/sdb
Disk …
Run Code Online (Sandbox Code Playgroud)

partitioning fdisk advanced-format

5
推荐指数
1
解决办法
1971
查看次数

ZSH:在命令运行之前更改提示

我想在 中有一个两行提示zsh,但在按下 后将它折叠成一个非常小的提示ENTER,这样它就不会出现在终端滚动历史记录中。键入两个命令后,终端在键入第三个命令时应如下所示:

> echo Command 1
Command 1
> echo Command 2
Command 2
+------------ Long prompt ----------+
`> echo typing a new command here…
Run Code Online (Sandbox Code Playgroud)

我试着用preexec钩子和得到一些东西zle reset prompt,但我得到了错误widgets can only be called when ZLE is active

$ autoload -U add-zsh-hook
$ hook_function() { OLD_PROMPT="$PROMPT"; export PROMPT="> "; zle reset-prompt; export PROMPT="$OLD_PROMPT"; }
$ PROMPT=$'+------------ Long prompt ----------+\n\`> '
+------------ Long prompt ----------+
`> add-zsh-hook preexec hook_function
+------------ Long prompt …
Run Code Online (Sandbox Code Playgroud)

zsh prompt hook

5
推荐指数
1
解决办法
1255
查看次数