我有运行CentOS 6.0虚拟机的VirtualBox(Windows XP 主机),有一个共享文件夹.
以下是已安装设备的列表:
[root@localhost ~]# mount -l
...
www on /media/sf_www type vboxsf (gid=501,rw)
Run Code Online (Sandbox Code Playgroud)
看起来它是读/写的。
现在,如果我尝试在此共享文件夹上写入:
[root@localhost ~]# touch /media/sf_www/test
touch: cannot touch `/media/sf_www/test': Read-only file system
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
编辑:只是尝试在其他地方手动安装它,同样的问题:
[root@localhost ~]# mount.vboxsf -w www /mnt/www
[root@localhost ~]# mount -l
...
www on /media/sf_www type vboxsf (gid=501,rw)
www on /mnt/www type vboxsf (rw)
[root@localhost ~]# touch /mnt/www/test
touch: cannot touch `/mnt/www/test': Read-only file system
Run Code Online (Sandbox Code Playgroud)
注意:该www文件夹在我的主机上是可写的。
我想知道是否可以从只读磁盘运行 Linux 服务器,特别是 CentOS 5.4。
我们的系统有许多 Linux 机器,每台机器都有自己的磁盘并安装了操作系统。目前一切都已启用读/写。我们从这些磁盘启动,但在通过 NFS 共享的一些外部磁盘上运行我们开发的所有软件。
我们希望能够确保不会向装有操作系统的内部磁盘写入任何内容,而仅向通过 NFS 共享的外部驱动器写入任何内容。我想我们可以通过编辑 /etc/fstab 文件并将驱动器安装为只读来管理此问题。
因此,如果我们拍摄内部磁盘的映像,然后启动系统,运行我们的软件(只会接触外部磁盘),然后关闭系统并拍摄内部磁盘的另一个映像,则不会有任何字节不同。
操作系统本身想要写入自己的日志文件等,因此我看不到将驱动器安装为只读会导致操作系统正常运行 - 或者会吗?
我只能认为某种网络启动可以实现这一点,但为此添加额外的机器作为 DHCP 和 TFTP 服务器的可能性为零。
任何帮助或想法将不胜感激!:)
紧要关头:客户需要测试启用 Active Directory 的 CRM 系统,该系统由 SQL 2008 Server 和 Windows 2008 Standard Server(应用程序服务器)组成。据我所知,最终用户身份验证和应用程序到 SQL 身份验证需要 Active Directory。
我们需要将这两个服务器从它们当前的域环境中拉出来,并在具有 Internet 连接但不在域 ( foo.local) 或与此相关的任何域中的测试设施中进行设置;目前,它们只是工作组中的一堆工作站。
我最初的想法是设置一个 IPSec 隧道到客户端的位置到/从测试设施,但我想知道 LAN 子网重叠是否会很麻烦(这里是 pfSense 防火墙)来管理和/或更改 IP 地址将两个服务器(FOOAPP和FOOSQL)连接到不同的子网以避免重叠会在 AD 领域引起一些麻烦(即域控制器不会“知道”这些服务器是谁)。
我的另一个想法是设置只读域控制器并将其带到现场测试设施,但从我粗略阅读 technet 文档来看,听起来它需要能够与客户端位置域控制器进行通信)。
最后,我知道您可以使用缓存的凭据对工作站进行离线身份验证:这可以与成员服务器一起使用吗?我假设不是发生在两者之间的 SQL 身份验证,FOOAPP并且FOOSQL可能根本不使用缓存,但如果没有,请启发我。
还有其他选择吗?
澄清
这些服务器目前没有用于生产。当他们加入客户的域时,其中没有数据,也没有人使用它;他们目前只是闲置的成员服务器。SQL 数据库将加载测试数据,然后用于培训,但在用户接受/最终用户培训期结束后,我们会将它们放回客户位置,从而投入生产(删除测试数据) .
我们无法在现场进行测试/培训,因为这对客户办公室的干扰太大,而且他们没有大的会议室来容纳测试/培训小组。
编辑
我想这都可以归结为两个问题:
当(只读 | 可写)域控制器与其他域控制器隔离时,它会发生什么?
Active Directory 是否“关心” IP 地址?即也许我可以将这两个服务器暂时放在不同的子网上并设置 IPSec 隧道,以便测试设施中的这些服务器和工作站可以与客户办公室的域进行通信。
我在 SSD 中复制了一个 10GB 的文件,使用 fio 命令进行基准测试,其读取带宽约为 3.3GB/s。这是参考: https: //cloud.google.com/compute/docs/disks/benchmarking-pd-performance
我使用“sync; echo 3 > /proc/sys/vm/drop_caches”清除了缓存。之后,我尝试每次使用系统调用 open() 和 read() 以 3MB 的小块读取文件。如果我打开没有 O_DIRECT 和 O_SYNC 的文件,它会给我大约 1.2GB/s 的带宽。但是,如果我使用 O_DIRECT 和 O_SYNC,它会提供大约 3GB/s 的带宽。即使 O_DIRECT 也没有真正使用页面缓存,两次都会清除缓存。
我的问题是为什么 O_DIRECT 提供正常的 IO 带宽,而没有 O_DIRECT 我无法获得它。由于从 IO 到页面缓存的数据带宽为 3.3GB/s,从页面缓存到用户缓冲区的带宽假设约为 7GB/si。该管道还应提供正常的 3.3GB/s。为什么速度比较慢?
我每次都会读新的 3MB。我没有重用数据,因此缓存并不是很有用。但是管道应该是受IO约束的,为什么不呢?
CPU 为 Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz。我不确定 DRAM 的速度。但问题是,如果我多次重新读取相同的 3MB,那么我会获得约 8GB/s 的带宽。我想这应该是 DRAM 带宽。因为linux可以使用所有的空闲RAM作为页面缓存。
我尝试了启用和不启用 O_DIRECT 的 fio 命令并记录了 iostat。
使用这个 fio 命令。“fio --name=read_throughput --directory=$TEST_DIR --numjobs=1 --size=10G --time_based --runtime=30s …
CentOS 5.5
我刚刚遇到一个实例,其中我的 /storage 目录应该是一个只读文件系统。我收到错误:
mkdir: cannot create directory `test': Read-only file system
Run Code Online (Sandbox Code Playgroud)
df:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
141G 21G 114G 16% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 1001M 0 1001M 0% /dev/shm
/dev/sdb1 1.4T 307G 999G 24% /storage
/dev/sdd1 1.4T 329G 978G 26% /media/hddblack
/dev/sdc1 1.4T 329G 978G 26% /media/hddsilver
Run Code Online (Sandbox Code Playgroud)
山:
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type …Run Code Online (Sandbox Code Playgroud) 此服务器配置了 RAID-1。它每天都获得只读文件系统。如果我重新启动它,它会返回一个读写文件系统。但过了一会儿,又只读了...
请问有什么想法吗?谢谢。
# dmesg |grep 错误 VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! VFS:无法在设备 cciss/c0d0p8 上写入配额结构(错误 -30)。配额可能不同步! EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71927230 #71927229 EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71927273 #71927229 EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71927333 #71927229 EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71927712 #71927229 EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71929238 #71927229 EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71929464 #71927229 EXT3-fs 错误(设备 cciss/c0d0p8):ext3_lookup:目录中未链接的 inode 71929704 …
我有一个问题,我的机器将根文件系统转换为只读模式并将其重新挂载为可写将不起作用:
# mount -o remount,rw /dev/sda1 /
mount: block device /dev/sda1 is write-protected, mounting read-only
Run Code Online (Sandbox Code Playgroud)
我想从该系统复制一些数据,并连接了一个 USB 驱动器并尝试安装它:
# mount -t ext3 /dev/sdb1 /mnt
mount: /dev/sdb1 already mounted or /mnt busy
Run Code Online (Sandbox Code Playgroud)
/mnt 是一个空目录,所以在那里挂载通常应该可以工作,但似乎在只读文件系统上拥有这个目录并不能在那里挂载某些东西。
我认为没有活动正在进行/mnt,因为以下命令不返回任何输出:
# lsof | grep "/mnt" | grep -v grep
Run Code Online (Sandbox Code Playgroud)
目前没有其他分区挂载为只读根文件系统。是否仍然可以以某种方式将附加的磁盘放入目录层次结构中?
我预计会出现错误,抱歉 FS 是只读的,但这是可能的。这是出乎意料且违反直觉的,有什么原因吗?
Linux files 5.11.0-27-generic #29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
files@files:/mnt/disk$ mount | grep /mnt/disk/005
/dev/sdh on /mnt/disk/005 type ext4 (ro,nosuid,nodev,noexec,relatime,user)
files@files:/mnt/disk$ df /mnt/disk/005/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdh 7751367424 7332824836 27824876 100% /mnt/disk/005
files@files:/mnt/disk$ sudo tune2fs -r 0 /dev/sdh
tune2fs 1.45.5 (07-Jan-2020)
Setting reserved blocks count to 0
files@files:/mnt/disk$ df /mnt/disk/005/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdh 7751367424 7332824836 418526204 95% /mnt/disk/005
files@files:/mnt/disk$
Run Code Online (Sandbox Code Playgroud) 我在 MSSQL 2008 Server 中有 100 个数据库。我需要创建一个只读用户来读取所有这些数据库。是否有服务器范围的角色:db_datareader 我可以将用户分配给,这样我就不需要通过每个数据库来添加用户映射。
谢谢,蒂姆
它可能对谁有帮助,这是我的最终脚本:
--You will need Server Level's Login user123 created first.
-- >=7 filtered out the system database, use this to find out your number
-- EXEC sp_MSForEachDB 'use ? SELECT DB_ID(), DB_NAME()'
EXEC sp_MSForEachDB
'USE ?
IF DB_ID() >= 7
BEGIN
CREATE USER user123 FOR LOGIN user123
EXEC sp_addrolemember db_datareader, user123
END
'
Run Code Online (Sandbox Code Playgroud) 研究创建系统的法律和法规合规性是防篡改的,并且想知道是否有一个术语表示启用了“创建、读取”但禁用“更新、删除”的系统。
我在一家房地产经纪公司的图形部门工作,我们处理很多照片。代理商拍摄照片,上传给我,我对照片进行润色和标准化,然后将它们添加到内部服务器以供图形部门将来使用。
我想让“清理过的”照片文件可供代理在他们需要时使用,但我不希望代理在图形部门的文件周围乱翻(东西被放错地方、重命名和搞砸了)。
如果我们可以创建该服务器的只读“镜像”(正确术语?),代理可以根据需要访问它,但不会反馈到我们的“清理”文件系统中,那将是完美的。
编辑:我正在寻找一个自动解决方案......在数字化工作时,手动将文件发布到两个不同的位置似乎是一个不雅的解决方案。
编辑:我试图避免对公共(脏)文件系统的任何访问障碍(但它最终实现了)。有 40-50 名房地产经纪人需要访问这些文件,其中一半无法可靠地下载电子邮件附件。
我的服务器文件系统经常进入只读模式。如果我重新启动系统,它会fsck在磁盘上执行操作。但是,它以退出状态 4 退出,( File system errors left uncorrected)并要求fsck手动执行。当我执行手册时fsck,它正在清除孤立的 inode 并进行文件系统修改。然后,它只能正常工作 1 或 2 天。同样的问题又来了。
如何提供永久解决方案来解决此问题?
还是应该换硬盘?
在dmesg输出中,我可以看到一些重复的错误。这是这个只读文件系统错误的原因。
供您参考,这里是dmesg输出。
[ 1755.676318] sd 1:0:1:0: [sda] 1953525168 512-byte hardware sectors: (1.00 TB/931 GiB)
[ 1755.677167] sd 1:0:1:0: [sda] Write Protect is off
[ 1755.677171] sd 1:0:1:0: [sda] Mode Sense: 00 3a 00 00
[ 1755.677492] sd 1:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1761.064636] …Run Code Online (Sandbox Code Playgroud) 我需要阻止对所有数据库的所有写入(插入、更新、删除)。我怎样才能做到这一点 ?将所有数据库置于只读状态一段时间。
read-only ×13
linux ×6
filesystems ×4
centos ×2
mount ×2
bandwidth ×1
benchmark ×1
block ×1
boot ×1
ext3 ×1
ext4 ×1
file-sharing ×1
fio ×1
hard-drive ×1
mirror ×1
mysql5.5 ×1
replication ×1
sql-server ×1
ubuntu ×1
ubuntu-20.04 ×1
users ×1
virtualbox ×1