- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这一切都是按照 root
完成的。用户。
备份脚本 /usr/share/perl5/PVE/VZDump/LXC.pm
设置默认挂载点
my $default_mount_point = "/mnt/vzsnap0";
但是无论我使用 GUI 还是命令行,我都会收到以下错误:
ERROR: Backup of VM 103 failed - mkdir /mnt/vzsnap0:
Permission denied at /usr/share/perl5/PVE/VZDump/LXC.pm line 161.
该脚本中的第 160 - 161 行是:
my $rootdir = $default_mount_point;
mkpath $rootdir;
安装后,在创建任何图像或进行任何备份之前,我设置了两件事。
/mnt/backups
的 SSHFS 挂载Linux LVM
我为添加驱动器所做的事情很简单:
pvcreate /dev/sdb1
pvcreate /dev/sdc1
pvcreate /dev/sdd1
pvcreate /dev/sde1
vgextend pve /dev/sdb1
vgextend pve /dev/sdc1
vgextend pve /dev/sdd1
vgextend pve /dev/sde1
lvextend pve/data /dev/sdb1
lvextend pve/data /dev/sdc1
lvextend pve/data /dev/sdd1
lvextend pve/data /dev/sde1
有关 SSHFS 说明,请参阅我的博客文章:https://6ftdan.com/allyourdev/2018/02/04/proxmox-a-vm-server-for-your-home/
<小时/>以下是与文件系统目录权限相关的文件和详细信息。
cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 9.0M 1.6G 1% /run
/dev/mapper/pve-root 37G 8.0G 27G 24% /
tmpfs 7.9G 43M 7.8G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/fuse 30M 20K 30M 1% /etc/pve
sshfs@10.0.0.10:/mnt/raid/proxmox_backup 1.4T 725G 672G 52% /mnt/backups
tmpfs 1.6G 0 1.6G 0% /run/user/0
ls -dla /mnt
drwxr-xr-x 3 root root 0 Aug 12 20:10 /mnt
ls /mnt
backups
ls -dla /mnt/backups
drwxr-xr-x 1 1001 1002 80 Aug 12 20:40 /mnt/backups
<小时/>
我希望成功的命令是:
vzdump 103 --compress lzo --node ProxMox --storage backup --remove 0 --mode snapshot
根据记录,容器镜像的大小仅为 8GB。
克隆容器确实有效,快照也有效。
<小时/>问)您如何运行 perl 脚本?
A) 通过 GUI,您单击立即备份,然后选择您的存储(我有 backups
和 local
,两者都会产生此错误),然后选择容器的状态( Snapshot
、 Suspend
、 Stop
均产生相同的错误),然后选择压缩类型( none
、 LZO
和 gzip
均产生相同的错误)。设置完所有内容后,单击备份并获得以下输出。
INFO: starting new backup job: vzdump 103 --node ProxMox --mode snapshot --compress lzo --storage backups --remove 0
INFO: Starting Backup of VM 103 (lxc)
INFO: Backup started at 2019-08-18 16:21:11
INFO: status = stopped
INFO: backup mode: stop
INFO: ionice priority: 7
INFO: CT Name: Passport
ERROR: Backup of VM 103 failed - mkdir /mnt/vzsnap0: Permission denied at /usr/share/perl5/PVE/VZDump/LXC.pm line 161.
INFO: Failed at 2019-08-18 16:21:11
INFO: Backup job finished with errors
TASK ERROR: job errors
从中可以看到命令是vzdump 103 --node ProxMox --mode snapshot --compress lzo --storage backups --remove 0
。我还尝试使用 SSH shell 登录并运行此命令并得到相同的错误。
Q) 可能是设置了目录的“不可变”属性。试试lsattr /
看看是否 /mnt
已设置小写“i”属性。
A) root@ProxMox:~# lsattr /
--------------e---- /tmp
--------------e---- /opt
--------------e---- /boot
lsattr: Inappropriate ioctl for device While reading flags on /sys
--------------e---- /lost+found
lsattr: Operation not supported While reading flags on /sbin
--------------e---- /media
--------------e---- /etc
--------------e---- /srv
--------------e---- /usr
lsattr: Operation not supported While reading flags on /libx32
lsattr: Operation not supported While reading flags on /bin
lsattr: Operation not supported While reading flags on /lib
lsattr: Inappropriate ioctl for device While reading flags on /proc
--------------e---- /root
--------------e---- /var
--------------e---- /home
lsattr: Inappropriate ioctl for device While reading flags on /dev
lsattr: Inappropriate ioctl for device While reading flags on /mnt
lsattr: Operation not supported While reading flags on /lib32
lsattr: Operation not supported While reading flags on /lib64
lsattr: Inappropriate ioctl for device While reading flags on /run
<小时/>
问) 可以手动创建/mnt/vzsnap0
没有任何问题吗?
A) root@ProxMox:~# mkdir /mnt/vzsnap0
mkdir: cannot create directory ‘/mnt/vzsnap0’: Permission denied
<小时/>
问)您可以在干净的虚拟机中复制它吗?
A)我不知道。我没有额外的系统来尝试它,我需要我拥有的容器。在 ProxMox 的虚拟机中尝试......我不确定。我想我可以尝试一下,但我真的不想现在就这样做。也许如果其他一切都失败了。
<小时/>Q) 如果您查看 drwxr-xr-x 1 1001 1002 80 Aug 12 20:40 /mnt/backups
,看起来有一个 id 为 1001
的用户它可以访问备份,因此即使 root 也无法写入。你需要检查为什么是1001以及1002
代表哪个组。然后您可以添加您的 root
以及运行 GUI 的用户到 ID 为 1002
的组.
A) 我可以毫无问题地写入 /mnt/backups
目录。刚才做了一个cd /mnt/backups; mkdir test
就成功了。
最佳答案
摘自留言
mkdir /mnt/vzsnap0: Permission denied
很明显问题出在/mnt目录的权限上。
可能是目录的“不可变”属性已设置。
尝试 lsattr/
并查看 /mnt
是否设置了小写“i”属性。
作为 reference :
The lower-case i in lsattr output indicates that the file or directory is set as immutable: even root must clear this attribute first before making any changes to it. With root access, you should be able to remove this with
chattr -i /mnt
, but there is probably a reason why this was done in the first place; you should find out what the reason was and whether or not it's still applicable before removing it. There may be security implications.
所以,如果是这种情况,请尝试:
chattr -i /mnt
删除它。
引用文献
根据inode flags—attributes manual page :
FS_IMMUTABLE_FL 'i': The file is immutable: no changes are permitted to the file contents or metadata (permissions, timestamps, ownership, link count and so on). (This restriction applies even to the supe‐ ruser.) Only a privileged process (CAP_LINUX_IMMUTABLE) can set or clear this attribute.
关于proxmox - 容器备份失败,权限被拒绝,返回 `mkdir/mnt/vzsnap0`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469934/
我正在尝试在 Java 中创建一个新目录,但它不起作用。我想知道为什么,因为我首先尝试了 mkdir() ,然后尝试了 mkdirs() ,它应该创建不存在的目录。 我写道: boolean stat
我尝试使用 mkdir 在本地 git 存储库中创建文件夹。它没有用,但是mkdir -p 有效。 为什么? 顺便说一句,我正在使用 Mac 操作系统。我检查了 mkdir -p 的定义。但是我还是不
我一直在关注 Learn Code the Hard Way 的教程,了解如何在 PowerShell 中使用命令行界面。在 this文章中,它告诉我使用命令 mkdir -p i\like\icec
下面是我的 MainActivity.java 代码。根据 toasts 的错误是在创建目录时。 主 Activity .java @Override protected void onActivit
我使用以下代码: final File newFile = new File("/mnt/sdcard/test/"); newFile.mkdir(); // if I use mkdirs() r
我被这个逼疯了: Log.d("STATE", Environment.getExternalStorageState()); File f = new File(Environment.getExt
我正在创建一个应用程序,我需要创建多个文件夹,而且创建文件夹是一步到位的。 要做最优化,然后我意识到 mkdir() 比 system('mkdir path') 快得多; 有谁知道原因吗? 最佳答案
mkdir $2 || echo "I can't create directory $2" && exit 8 大家好,这是我在这里的第一篇文章,请多多关照。 我现在正在制作一个脚本,这一行让我很困
您好,我最近遇到了这个问题,但能够解决它。实际上路径中的拼写错误。我想知道如何正确处理这些错误。也就是说,如果 mkdir 失败,我的程序应该继续执行并且应该安全地返回 false。这是我的代码 tr
我正在尝试在我的程序开始时创建一个日志文件。 如果 /log 目录没有创建目录,我需要检查它是否存在,然后继续创建日志文件。 好吧,我尝试使用 os.Mkdir(以及 os.MkdirAll),但无论
以下代码可与其他 API 一起使用,但 26 public static boolean cretaeDir() { String dir = Environment.getExternalS
尝试在 PHP 中使用 mkdir() 函数时出现此错误。 基本上,我是在我的服务器上创建一个基于 input field 的 HTML 表单中名为 (inPut) 的 sundomain。 现在我正
为什么 file.mkdir 返回 false? Google 指出可能有多种原因(例如安全性、权限、路径名等)。 我的问题: 如何找到返回false的确切原因? 如果安全/权限是一个原因,那么为什么
我找不到答案的简单问题: 使用 os.mkdir("somedir") 比 os.system("mkdir somedir") 或 subprocess.call() 有好处吗,超越代码可移植性?
这个问题与this question无关.我已经看到它了,但它是特定的 Android 4.4.2 问题,因为该代码在其他版本的 Android 上运行良好。 final File path = ne
os.Mkdir 和 syscall.Mkdir 在 Golang 中有相同的 API 系统调用.Mkdir: func Mkdir(path string, mode uint32) (err er
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、它们为什么不起作用以及预期结果。另
这个问题在这里已经有了答案: What is different between makedirs and mkdir of os? (3 个答案) 关闭 9 个月前。 根据 python 3.6
我通过 bash 中的 mkdir 和 python 中的 os.mkdir 使用文件模式创建了目录。他们制作了具有不同权限的目录。 我在命令行中的测试代码如下, $ mkdir -m 0775 aa
给定: MIGRATION_FOLDER=/opt/migration 要么这样: ssh -tt ${REMOTE_SERVER} sudo sh -c "mkdir -p /opt/migrati
我是一名优秀的程序员,十分优秀!