标签: fstab

以用户身份挂载 ramfs

我的 fstab 条目:

none    /home/jreinhart/ramdisk    ramfs    defaults,user   0 0
Run Code Online (Sandbox Code Playgroud)

挂载的目录:

drwxrwxr-x  2 jreinhart jreinhart  4096  Oct 17 11:31 ramdisk
Run Code Online (Sandbox Code Playgroud)

之后的目录mount ramdisk

drwxr-xr-x  2 root     jreinhart  4096  Oct 17 11:31 ramdisk
Run Code Online (Sandbox Code Playgroud)

所以,你可以看到问题。挂载后,所有者更改为 root,组权限将变为,r-x因此我无法使用此 ramdisk。是什么赋予了?

我正在尝试这样做而不必su

filesystems permissions mount fstab

9
推荐指数
1
解决办法
6821
查看次数

选项“用户”适用于挂载,不适用于 umount

我正在试验我正在编写的程序的安装选项。我正在运行 Linux Mageia 2。

我添加了以下行 /etc/fstab

/dev/sr0 /mem  auto user,noauto, 0 0
Run Code Online (Sandbox Code Playgroud)

我删除了所有其他关于/dev/sr0哪个是我的 DVD 驱动器设备的条目。

然后,作为普通用户,我可以成功

$ mount /dev/sr0
Run Code Online (Sandbox Code Playgroud)

但随后我收到一条错误消息(“只有 root 可以...”)

$ umount /dev/sr0
Run Code Online (Sandbox Code Playgroud)

当然,设备不忙:我在mount和umount之间什么都不做。

解决后补充如果你只对解决那个问题感兴趣,你可以跳过剩下的问题,直接进入接受的答案。剩下的问题是关于我寻找解决方案或更好地记录问题的工作。但是,在问题的最后有一个事后分析部分,用我自己的评论补充了答案。

文件的所有权:

$ ls -ld /mem /dev/sr0
brw-rw----+  1 root cdrom 11, 0 mai   14 01:01 /dev/sr0
drwxr-xr-x  12 root root   4096 janv. 21 22:34 /mem/
Run Code Online (Sandbox Code Playgroud)

我是“cdrom”组的成员

使用循环设备挂载文件系统映像时,我遇到了同样的问题。

但是,当我用选项“用户”替换“用户”时,一切正常,这似乎表明系统在记住谁安装了文件系统时感到困惑。

Rahul Patil 的第一个回复并没有带来进一步的见解,因为如果我对卸载程序的理解是正确的,它本质上与我使用的相同。然而,它让我进一步思考这个过程(因此一个赞成票)并获得更多细节。Hauke Laging 的评论更支持这一点。据我了解,总而言之, umount 命令采用其参数(设备或安装点)并尝试识别适用的条目/etc/mtab,然后检查它/etc/fstab是否可以执行请求。

根据该对支架(8)用户手册安装用户的名称[应]写入mtab中,使他可以再次卸载文件系统。 …

linux mount fstab

9
推荐指数
1
解决办法
8923
查看次数

即使分区挂载有丢弃,fstrim 也会修剪超过一半的分区大小

当我安装我的 SSD 时,我只是安装了discard它,并没有出汗。然而,今天我正在阅读有关使用它的利弊的信息,fstrim并决定运行该程序以了解实际需要多长时间(仍然使用 安装我的分区discard)。该命令在我的根分区和主分区上都花费了几分钟。对于我的主分区,我使用-v并得到了这个:

$ sudo fstrim -v /home
/home: 137494052864 bytes were trimmed
Run Code Online (Sandbox Code Playgroud)

这比分区上的可用空间量还多!

$ df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       206G   78G  118G  40% /home
Run Code Online (Sandbox Code Playgroud)

随后的运行在不到一秒的时间内完成,例如:

$ sudo fstrim -v /home
/home: 0 bytes were trimmed
Run Code Online (Sandbox Code Playgroud)

当然,如果我一直用 挂载分区discardfstrim不应该像这样修剪大量数据吗?该discard选项肯定已启用,以下是相关fstab行:

UUID=xxxxxxxx...    /          ext4   noatime,discard,errors=remount-ro  0      1
UUID=xxxxxxxx...    /home      ext4   noatime,discard,errors=remount-ro  0      2
Run Code Online (Sandbox Code Playgroud)

mount输出行:

/dev/disk/by-uuid/xxxxxxxx... on / type …
Run Code Online (Sandbox Code Playgroud)

linux filesystems fstab trim

9
推荐指数
1
解决办法
9115
查看次数

genfstab 的 -p 选项有什么作用?

按照指南安装 Arch Linux 时,会指示读者执行以下命令:

genfstab -U -p /mnt >> /mnt/etc/fstab
Run Code Online (Sandbox Code Playgroud)

据说该-U选项使用了 UUID 的标签,但是该-p选项有什么作用呢?我用谷歌搜索过它,只能在 fstab 本身上找到一个页面,而不是它的生成器。Arch 没有关于这个主题的联机帮助页……如果有人知道文档在哪里genfstab,他们可以提供一个链接吗?如果没有,有人可以告诉我选项是什么或选项有什么作用(主要是-p开关)?

arch-linux fstab

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

启动时挂载 iSCSI 驱动器 - 系统停止

我在装有 OS X 10.10 的 Mac 上的 VirtualBox VM 中运行 Oracle Linux 7(基于 CentOS/RedHat 的发行版)。我有一个 Synology Diskstation 作为 iSCSI 目标。

我已成功连接到 Synology,对磁盘进行了分区并创建了一个文件系统。它被称为/dev/sdb并且分区是/dev/sdb1。现在,我想做的是创建一个挂载点,以便我可以轻松访问它:

    mount /dev/sdb1 /mnt/www
Run Code Online (Sandbox Code Playgroud)

该命令有效。但显然,它在重新启动后不是持久的。不用担心...进入/etc/fstab我们去。

首先,我获得了分区的 UUID,以确保我始终使用正确的设备:

    blkid /dev/sdb1

Result:
    /dev/sdb1: UUID="723eb295-8fe0-409f-a75f-a26eede8904f" TYPE="ext3"
Run Code Online (Sandbox Code Playgroud)

现在,我将以下行插入到我的 /etc/fstab

    UUID=723eb295-8fe0-409f-a75f-a26eede8904f /mnt/www    ext3   defaults   0 0
Run Code Online (Sandbox Code Playgroud)

重新启动后,系统崩溃并进入维护模式。如果我删除我插入的行,一切都会再次工作。但是,我正在按照Oracle-Base 的逐字说明进行操作

我知道我错过了一些东西..有人能指出我正确的方向吗?

linux mount fstab iscsi

9
推荐指数
1
解决办法
3万
查看次数

挂载错误:挂载失败:文件存在

我无法安装我的 USB:

$ mount /dev/sdb1 /mnt
mount: mount /dev/sdb1 on /mnt failed: File exists
Run Code Online (Sandbox Code Playgroud)

此错误的根源是什么,如何安装 USB?

分区/dev/sdb1不在/etc/fstab

automounting mount unmounting fstab

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

对非 root 用户使用“mount -o”

我有一个 mount 命令,它使用-t cifs将远程文件夹(例如\\remote_ip_address\folder)挂载到本地文件夹(例如/srv/mount_destination)。

所以整个命令看起来像这样:

mount -t cifs -o ro,username=UN,password=PWD '\\remote_ip_address\folder' /srv/mount_destination
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

mount: only root can use "--options" option

我的问题是此命令必须由 运行user,但是用户没有也不能拥有 sudo 特权,因此将命令与 sudo 一起使用是不可能的。另一个障碍是远程文件夹必须安装在 中的文件夹下/srv,因此/media也不能选择使用其他文件夹。

我尝试将以下行添加到/etc/fstab,重新启动系统,但没有任何积极影响:

//remote_ip_address/folder /srv/mount_destination cifs noauto,user 0 0

是我做错了什么还是我还遗漏了什么?

mount fstab

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

何时何地使用 rw、nofail、noatime、discard、defaults?

我正在使用 OpenStack Cloud 并在 RHEL 7 上使用 LVM 来管理卷。根据我的用例,我应该能够将这些卷分离并附加到不同的实例。

在更新 fstab 时,我已经使用defaults,nofail了一段时间,但我不确定我应该使用什么。我知道这些选项:

rw, nofail, noatime, discard, defaults 
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用它们。我的用例的理想配置应该是什么?

linux rhel fstab volume

9
推荐指数
2
解决办法
4万
查看次数

在 sshfs 的 fstab 中忽略了“exec”选项,需要在命令行上指定为“mount”?

我在 fstab 中使用 sshfs 在 Ubuntu 18.04.04 LTS 中挂载文件系统:

sshfs#dave@myservergoeshere.com:/remote-dir /mnt/local-mnt  fuse    rw,exec,user,allow_other,noauto,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3  0 0
Run Code Online (Sandbox Code Playgroud)

它安装得很好,但是如果我尝试在路径中执行任何操作,我会得到:

./some-executable: Permission denied.
Run Code Online (Sandbox Code Playgroud)

该文件具有执行权限(如果我确实通过 ssh 进入系统,则可以正常工作)。

如果我使用 fstab 但再次包含 -oexec 选项:

mount /mnt/local-mnt -oexec
Run Code Online (Sandbox Code Playgroud)

然后它起作用了。为什么 fstab 'exec' 被忽略?

ubuntu mount fstab sshfs

9
推荐指数
1
解决办法
733
查看次数

在 /etc/fstab 中列出 rootfs 的目的是什么?

在 BuildRoot 2015.08.1 /etc/fstab 中包含以下行。

/dev/root / ext2 rw,noauto 0 1
Run Code Online (Sandbox Code Playgroud)

在我加密的 Ubuntu 笔记本电脑上,/etc/fstab 包含以下行。

/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1
Run Code Online (Sandbox Code Playgroud)

问题:在 /etc/fstab 中列出 rootfs 的目的是什么?

不是答案:

  • 内核从 root= 参数或在 initramfs 中以只读方式挂载 rootfs。所以 /etc/fstab 无助于以只读方式挂载 rootfs。

  • init 进程重新挂载 rootfs 读写。这是在 BuildRoot 中的 /etc/inittab 和 Ubuntu 中的 /etc/rcS.d/S06checkroot.sh 中完成的。所以 /etc/fstab 无助于重新挂载 rootfs 读写。

背景:我正在构建一个带有花哨的 initramfs 的嵌入式系统。它在网络上和本地寻找不同的 rootfs 候选者,直到找到合适的候选者。它负责检查文件系统并在调用 switch_root 之前以读写方式重新挂载它。

额外问题:不在 /etc/fstab 中列出 rootfs 会有什么影响?

如果没有就太棒了。我不想为每个 rootfs 维护不同的 /etc/fstab。但是,为什么 BuildRoot 和 Ubuntu 会保留它呢?

剧透:我试过了,它似乎有效,但我对隐藏的后果持谨慎态度。

ubuntu fstab root-filesystem buildroot

8
推荐指数
1
解决办法
2205
查看次数