我正在尝试将教程改编成易于使用的脚本 http://qt-project.org/wiki/RaspberryPi_Beginners_guide。
我正在尝试尽可能减少对 sudo/root 的需求(最好仅用于最后dd
一步)。
我的问题是:
我可以以任何方式在没有 sudo/root 权限的情况下挂载 ext4 文件系统吗?
我可以以某种方式安装它,以便以某种方式忽略 FS 上的用户/组(这样我就可以在没有 sudo 的情况下运行 make install)吗?
文件系统当前从文件的偏移量(即-o loop,offset=62914560
)环回安装。
该文件是将复制到用于启动 Raspberry Pi 的 SD 卡上的映像。
答案1
你要libguestfs。您可以通过以下方式使用它客鱼或者盖斯特蒙特,或者直接通过其使用该库C接口或任何许多语言绑定,例如Python。
答案2
如果您的系统使用 udisk(并且 polkit 允许非 root 用户挂载 udisk),您可以使用以下命令挂载该文件:
udisksctl loop-setup -f file.img -o <OFFSET>
<OFFSET>
是一个整数值,表示启动环回安装的字节数。-r
如果您想以只读方式安装,可以使用该开关。
答案3
关于这一点,我想到了以下内容。
/etc/fstab
您可以为要作为具有普通权限的用户安装的设备添加一行。
示例行如下所示
/dev/mydevice /mnt/directory auto rw,user 0 0
通过这条线,普通用户可以安装mydevice
到/mnt/directory
设备,并且还可以读取和写入设备。你只需要调用
mount mydevice
或者
mount /mnt/directory
要获得对语法的出色解释,/etc/fstab
您应该查看
由于这raspberry
是 USB 设备,您可以通过udev
添加特定的 udev 规则(自动挂载等)更优雅地实现此目的。在这种情况下,如果您想要进一步解释,请让我现在就解释。
答案4
您需要超级用户权限才能安装。但这些可以通过 setuid 辅助命令(如 sudo、mount 或 fusionmount)提供给您。在/etc/fstab中,管理员可以授予一些普通用户挂载特定的FS。可以允许某些用户通过 fusion 挂载文件系统(例如,如果 FS 是 ext,则可以使用 fusionext.
或者,也许您可以通过使用可以在文件系统内写入的应用程序而无需安装。例如,debugfs 可以写入 ext fs 映像(创建目录、文件、更改所有权...),debugfs 可以轻松编写脚本。您还可以使用 qemu 运行 Linux 内核和相关命令来写入该 FS。