我正在使用 64 位 Ubuntu 服务器。我已将 nfs 挂载为 rw,但每当我尝试在相关挂载点上编辑任何内容时,都会收到只读文件系统错误
我的etc/fstab读物:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
/dev/mapper/product-root / ext4 errors=remount-ro 0 1
UUID=1cae6948-ca9d-4f0b-aec6-9e7a60bbbad8 /boot ext2 defaults 0 2
/dev/mapper/product-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
vnxnfs1.company.com:/NFS2 /mnt/nfs2 nfs defaults 0 0
Run Code Online (Sandbox Code Playgroud)
mount 返回:
/dev/mapper/product-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type …Run Code Online (Sandbox Code Playgroud) 当 SAN 出现问题时,ext3 检测磁盘写入错误并以只读方式重新安装文件系统,这是一个相对常见的问题。这一切都很好,只有当 SAN 修复后,我才能弄清楚如何在不重新启动的情况下重新安装文件系统读写。
看:
[root@localhost ~]# multipath -ll
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 1:0:0:1 sdb 8:16 [active][ready]
\_ 2:0:0:1 sdc 8:32 [active][ready]
[root@localhost ~]# mount /dev/mapper/mpath0 /mnt/foo
[root@localhost ~]# touch /mnt/foo/blah
Run Code Online (Sandbox Code Playgroud)
一切都很好,现在我从它下面拉出 LUN。
[root@localhost ~]# touch /mnt/foo/blah
[root@localhost ~]# touch /mnt/foo/blah
touch: cannot touch `/mnt/foo/blah': Read-only file system
[root@localhost ~]# tail /var/log/messages
Mar 18 13:17:33 localhost multipathd: sdb: tur checker reports path is down
Mar 18 13:17:34 localhost multipathd: sdc: tur …Run Code Online (Sandbox Code Playgroud) 我正在使用该automysqlbackup脚本转储我的 mysql 数据库,但我希望有一个只读用户来执行此操作,这样我就不会将我的根数据库密码存储在纯文本文件中。
我创建了一个这样的用户:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Run Code Online (Sandbox Code Playgroud)
当我运行mysqldump(通过automysqlbackup或直接)时,我收到以下警告:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Run Code Online (Sandbox Code Playgroud)
我做错了吗?我的只读用户需要额外的授权吗?还是只能root锁information_schema表?这是怎么回事?
编辑:
GAH,现在它可以工作了。我以前可能没有运行 FLUSH PRIVILEGES。
顺便说一句,这种情况多久自动发生一次?
编辑:
不,它不起作用。mysqldump -u username -p --all-databases > dump.sql手动运行不会产生错误,但不会转储 information_schema。automysqlbackup确实会引发错误。
Ubuntu 12.04
文件系统频繁进入只读模式。首先,我读过这个问题文件系统已经经常进入只读模式。但我必须知道它是否不是由dying hard drive. 这是我的客户提供的服务器,我只是在那里运行一些node.js workers+ 一个node.js server,我正在使用mongodb.
有时(每 20-50 小时)系统突然使文件系统只读,mongodb 进程失败(由于只读 fs)并且我的节点工作人员/服务器(由 启动forever)刚刚被杀死。
这是来自 dmesg 的日志 - 我可以看到 FS 将要只读的一些错误和消息,还有一些 JOURNAL 错误,但我想找出这些错误的原因..
http://speedy.sh/Ux2VV/dmesg.log.txt
编辑
smartctl -t long /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-23-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
SMART support is: Unavailable - device lacks SMART capability.
A mandatory SMART command failed: exiting. To continue, add one or more '-T …Run Code Online (Sandbox Code Playgroud) 我想postgresql在 Ubuntu 机器上的现有数据库中创建一个新用户。我想授予此用户对所有表的只读访问权限。
我该怎么做?我是否也需要在 Ubuntu 上创建一个新用户?
谢谢,
乌迪
除了磁盘是只读的并且不想改回来之外,一切都照常工作。
谢谢。
root@NODE02:/tmp# df .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 461490504 179502128 258545928 41% /
root@NODE02:/tmp# mount -o rw,remount /dev/sda5
mount: cannot remount block device /dev/sda5 read-write, is write-protected
root@NODE02:/tmp# touch helll
touch: cannot touch `helll': Read-only file system
Run Code Online (Sandbox Code Playgroud)
这不是多路径。这没什么特别的。只是一个带有 ubuntu 9.10 的服务器。
对我来说没有意义,是吗?
- - 编辑 - -
Selinux 不活跃。
没有RAID。有 2 张光盘,每张 500Gb。第一个用于操作系统和一些家庭。第二个是分布式FS,HPC高性能。
Dmesg 自 2 天前未更新。最后几行没有任何与光盘或错误相关的内容。
重启了,没找到硬盘。从BIOS,硬盘驱动器已死,甚至没有响应名称查询。
需要新硬盘。谢谢。
我使用 mount -o bind 在 chroots 中挂载目录,效果非常好。问题是我希望其中一些绑定安装的目录只能在 chroot 中读取。
是否可以?如果没有 - 任何其他方式来实现它?
我正在考虑将 NFS 用于本地主机挂载,但它看起来有点矫枉过正。
首先,我不确定这个网站的用户对学生有多友好,但我的问题似乎很合适。
我正在用多台 Windows Server 2008 机器配置一个域,我很好奇我是否可以在只读域控制器上成功安装某些角色。我不确定只读配置是仅适用于 Active Directory 角色还是该服务器上的其他角色。我问是因为我无法从只读机器更改 DNS,这让我相信其他角色也会受到这种影响。我知道 DNS 的问题可能是因为它依赖于 Active Directory,但我仍然不确定。
感谢所有花时间阅读和回答我的问题的人。
domain-name-system windows-server-2008 active-directory read-only
我需要将文件写入 Linux 文件系统,该文件系统随后不能被覆盖、附加、以任何方式更新或删除。不是 sudo-er、root 或任何人。我试图满足金融服务法规对记录保存的要求,FINRA 17A-4,它基本上要求将电子文档写入 WORM(一次写入,多次读取)设备。我非常希望避免使用 DVD 或昂贵的 EMC Centera 设备。
是否有 Linux 文件系统,或者 SELinux 能否支持在写入后立即(或至少很快)使文件完全不可变的要求?或者有人知道我可以使用 Linux 权限等在现有文件系统上强制执行此操作的方法吗?
我知道我可以设置只读权限和不可变属性。但当然,我希望 root 用户能够取消这些设置。
我考虑将数据存储到卸载的小卷中,然后以只读方式重新挂载,但后来我认为 root 仍然可以卸载并重新挂载为可写。
我正在寻找任何聪明的想法,在最坏的情况下,我愿意做一些编码来“增强”现有文件系统以提供此功能。假设有一个文件系统是一个很好的起点。并放置一个精心配置的 Linux 服务器作为这种类型的网络存储设备,什么都不做。
毕竟,对文件进行加密也很有用!
我正在为运行 CentOS 6.2 的无头嵌入式设备开发。用户可以连接键盘,但不能连接显示器,串行控制台需要打开外壳,这是我们不希望用户必须做的事情。这几乎消除了使用恢复 USB 驱动器启动的可能性,除非它所做的只是盲目地重新映像硬盘驱动器。我想提供一些恢复工具,并且我已经编写了一个工具,它出现在 /dev/tty1 上来代替 getty 来提供这些功能。
其中一种功能是 fsck。我已经找到了如何以只读方式重新挂载根文件系统和其他文件系统。现在它们是只读的,fsck 它们然后重新启动应该是安全的。不幸的是,fsck 向我抱怨文件系统已挂载并且拒绝做任何事情。
如何强制 fsck 在只读挂载分区上运行?
根据我的研究,这将是一些晦涩难懂的东西。“-f”仅表示强制修复干净(但未安装)的分区。我需要修复干净或不干净的挂载分区。从我读到的内容来看,这是“只有专家”才应该做的事情,但没有人费心解释专家是如何做到的。我希望有人可以向我透露这一点。
顺便说一句,我注意到 Gentoo 上的 e2fsck 1.42.4 会让你 fsck 一个挂载的分区,甚至挂载读写,但似乎只有在 fsck 从终端运行时才会这样做,所以它可以询问用户是否肯定他们想做一些如此危险的事情。我不确定 CentOS 版本是否也做同样的事情,但 fsck 似乎可以修复已安装的分区,但它在不从终端运行时断然拒绝。
对我来说,最后的一个选择是编译我自己的被黑的 fsck。但恐怕我会以某种意想不到的方式把它搞砸。
谢谢!
注意:最初发布在这里。
更新:在我写这篇文章的时候,我认为这无关紧要,但是为了重新挂载 fs 只读,我必须这样做:
echo s > /proc/sysrq-trigger
echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)
这是我能找到的唯一方法。其他一切都抱怨文件系统很忙。据我所知,这是“安全的”,但它的重新安装可能与通常的方法略有不同。这可能是 fsck 不想修复它的原因。它仍然认为它以读写方式挂载。