在 linux 上,我有一个使用该-o loop选项挂载的文件。我想卸载它。但是它告诉我device is busy。但是,通过这样做lsof | grep pathofimagefile我没有得到任何结果。然而我无法卸载!
我使用 dd 命令使用 dd if=/dev/sdb of=/jobs/image.dd 创建了一个磁盘映像。SATA 驱动器 /dev/sdb 上有 3 个分区(一个 NTFS,两个 FAT32)。
如何一次性安装完整映像及其所有分区?我实际上想使用 Python 编写脚本,但知道如何做显然是第一步!
提前致谢
在我的 IT 装备中,我们有模板来部署带有小型 C 驱动器/分区 (10GB) 和更大 D 驱动器/分区的服务器。为什么要这样做?Windows(至少直到最近为止)在一般服务器部署中并没有真正使用动态挂载点。
编辑
因此,在下面的许多评论中,提要:
除了#3(我认为这是反对分区的论据),我仍然认为没有理由有单独的分区。如果您想保护您的数据,您是否只是将其放在另一组真实或虚拟磁盘上,或者以其他方式映射到其他地方的共享资源(NAS、SAN 等)?
我编写了一个简单的 bash 脚本来每天将某些文件备份到备份装载并保留最近 3 天的备份。这显然太简单了,因为我偶尔会遇到奇怪的行为,这可以通过在 rm 完成之前执行第一个 mv 来解释。
这是脚本:
#!/bin/bash
mount /mnt/backups
while [ ! -d /mnt/backups/dailyBackup-0 ]
do
echo "Backup mount not present, sleeping..."
sleep 30
done
rm -r /mnt/backups/dailyBackup-2
mv /mnt/backups/dailyBackup-1 /mnt/backups/dailyBackup-2
mv /mnt/backups/dailyBackup-0 /mnt/backups/dailyBackup-1
dirname="/mnt/backups/dailyBackup-0"
mkdir $dirname
cd /
rsync -qr --stats root etc var $dirname
umount /mnt/backups
Run Code Online (Sandbox Code Playgroud)
虽然这在很多时候都很好,但有时我会得到以下结果,看起来dailyBackup-1 在dailyBackup-2 完成删除之前被移动了。如果这是正在发生的事情,预防它的最佳方法是什么?
/mnt/backups/dailyBackup-0:
total 0
drwxrwxrwx 1 root root 0 2010-12-07 03:27 var
drwxrwxrwx 1 root root 0 2010-12-07 02:39 root
drwxrwxrwx 1 root root 0 2010-12-07 …Run Code Online (Sandbox Code Playgroud) 我有一个块大小为 64k 的 XFS 分区。但是当块大小为 4k 的默认值时,我只能在 Ubuntu 10.10 中安装它。如何挂载块大小较大的分区?
这有效:
sudo mkfs.xfs /dev/sdb1 -b size=4k -d agcount=32 -l size=128m -f
sudo mount /dev/sdb1 /mnt/media
Run Code Online (Sandbox Code Playgroud)
这不起作用:
sudo mkfs.xfs /dev/sdb1 -b size=64k -d agcount=32 -l size=128m -f
sudo mount /dev/sdb1 /mnt/media
mount: Function not implemented
Run Code Online (Sandbox Code Playgroud) 在我的 Linux 服务器中,我在/etc/exports 中有以下选项
/home *(rw,sync,no_subtree_check,no_root_squash)
Run Code Online (Sandbox Code Playgroud)
我从 Mac 安装使用
mount -t nfs -o resvport,rw,noatime,soft,intr,rsize=32768,wsize=32768,timeo=900,retrans=3,proto=tcp,vers=3,async 192.168.1.121:/home /Volumes/home
Run Code Online (Sandbox Code Playgroud)
如您所见,服务器正在指定sync但我的挂载选项正在使用async,那么将使用哪一个?
我在自动挂载具有嵌套挂载点的单独池时遇到问题。我正在使用 ZfsOnLinux 0.6.2。
目前情况如下:
zpool1 ---> /var
zpool1/log ---> /var/log
zpool1/mail ---> /var/mail
Run Code Online (Sandbox Code Playgroud)
现在我需要为 db 添加一个单独的 zpool。为了保持目录层次结构一致,我想到了这个:
zpool2 ---> /var/db
Run Code Online (Sandbox Code Playgroud)
现在,问题是当首先挂载 zpool2 时,zpool1 挂载失败(这是合乎逻辑的)。
除了使用传统的挂载选项之外,有没有一种方法可以强制池的挂载顺序以允许在 zpool1 中挂载 zpool2?像zpools依赖之类的东西?或者我应该不惜一切代价避免这种嵌套的安装?
是否有任何工具可以告诉您挂载的 fstab 行应该是什么?IE。它查看手动安装的内容,并告诉您必须添加的行/etc/fstab才能使相同的安装持久化。
我知道这可能必须是“启发式”,或者换句话说,关于选项等的猜测。但它似乎仍然非常有用。
我无法在一个 EC2 实例中装载多个 EBS 卷。我有3 EBS卷它们是“根体积”从先前终止EC2实例剩菜(命名为:/dev/xvdf1,/dev/xvdg1,/dev/xvde1)。我能够/dev/xvde1使用以下命令成功挂载:
#mount /dev/xvde1 /home/ec2-user/xvde1
Run Code Online (Sandbox Code Playgroud)
但是当我对 xvdf1 和 xvdg1 重复此过程时,我收到此错误:
ec2-user]# mount -t xfs /dev/xvdf1 /home/ec2-user/xvdf1
**mount: wrong fs type, bad option, bad superblock on /dev/xvdf1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.**
Run Code Online (Sandbox Code Playgroud)
支持输出:
1)
ec2-user]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 …Run Code Online (Sandbox Code Playgroud) 我有一台 CentOS 服务器,它使用 zfs 来管理一个大而慢的网络附加卷。
我们从这本书中阅读了很多内容,因此我想优化阅读性能。
这个想法显然是 L2ARC 缓存。
不幸的是,我只有一个 SSD 磁盘连接到这台机器,已经使用托管 / 的 xfs 进行了格式化,并且我无法连接更多磁盘(由其他人管理的机器)。
我想知道是否可以在 SSD 磁盘中创建一个文件并以某种方式将 L2ARC 放入该文件中。
我正在考虑以循环方式安装磁盘,但是循环安装似乎仅支持只读设备。
还有其他选择吗?
$ dd if=/dev/zero of=/root/cache size...
$ mount -o rw,loop /root/cache /mnt/cache-file
mount: /dev/loop0 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
Run Code Online (Sandbox Code Playgroud) mount ×10
linux ×3
partition ×2
zfs ×2
automount ×1
bash ×1
dd ×1
disk-volume ×1
files ×1
filesystems ×1
fstab ×1
image ×1
loop-device ×1
nfs ×1
ubuntu ×1
unix ×1
windows ×1
xfs ×1
zfsonlinux ×1