これはすべて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;
インストール後、イメージを作成する前、またはバックアップを作成する前に、2つのことをセットアップしました。
/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
[email protected]:/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です。
コンテナのクローンは機能し、スナップショットは機能します。
Q)Perlスクリプトをどのように実行していますか?
A)GUIで今すぐバックアップをクリックしてください、次にストレージ(backups
とlocal
があり、どちらもこのエラーを生成します)、次にコンテナーの状態を選択します(Snapshot
、Suspend
、Stop
はそれぞれ同じエラーを生成し、)圧縮タイプ(none
、LZO
、およびgzip
はそれぞれ同じエラーを生成します)。すべての設定が完了したら、Backupをクリックして次の出力を取得します。
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シェルでログインしてこのコマンドを実行しようとしたところ、同じエラーが発生しました。
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
Q)問題なく/mnt/vzsnap0
を手動で作成できますか?
A)root@ProxMox:~# mkdir /mnt/vzsnap0
mkdir: cannot create directory ‘/mnt/vzsnap0’: Permission denied
Q)クリーンに複製できますかVM?
A)わかりません。私はそれを試すための追加のシステムを持っていません、そして私はそれを持っているコンテナが必要です。 VM=内で試してみる...わからない。たぶん試してみたほうがいいと思うが、実際に試してみる必要はないだろう。他のすべてが失敗した場合はそうだろう。
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:権限が拒否されました
/ mntディレクトリの権限が問題であることは明らかです。
ディレクトリの「immutable」属性が設定されている可能性があります。
lsattr /
を試して、/mnt
に小文字の「i」属性が設定されているかどうかを確認してください。
Lsattr出力の小文字のiは、ファイルまたはディレクトリが不変として設定されていることを示します。rootでさえも、変更を行う前にこの属性をクリアする必要があります。 rootアクセスを使用すると、これを
chattr -i /mnt
で削除できるはずですが、これが最初に実行された理由はおそらくあります。削除する前に、その理由と、それがまだ当てはまるかどうかを確認する必要があります。セキュリティへの影響があるかもしれません。
したがって、これが当てはまる場合は、以下を試してください。
chattr -i /mnt
それを削除します。
参考文献
FS_IMMUTABLE_FL 'i':ファイルは不変:ファイルの内容またはメタデータへの変更は許可されません(権限、タイムスタンプ、所有権、リンク数など)。 (この制限は、スーパーユーザーにも適用されます。)この属性を設定またはクリアできるのは、特権プロセス(CAP_LINUX_IMMUTABLE)だけです。
バウンティがまだ有効である限り、ここで説明されている問題を修正する正当な答えを提供します。
私が皆さんのためにここに書いているのは回避策うまくいくと思いました。 非常に遅いであることに注意してください。
ネットワーク上の別のシステムに存在する/mnt/backups
ディレクトリに書き込むことができるため、Perlスクリプトを変更しました/mnt/backups/vzsnap0
ではなく/mnt/vzsnap0
を指すようにします。
バウンティは、/mnt
ディレクトリを取得して、バックアップスクリプトのvzsnap0
を正常にマウントするためのマウントパスで機能するすべての人に残されています。
これはかなり長年のことです issue 多くの人が直面しているUbuntu Makeです。
上記のリンクでUbuntu開発者が言及した回避策を見ました。
以下の手順に従ってください:
Sudo -s
unset Sudo_UID
unset Sudo_GID
次に、umakeを実行して、通常どおりアプリケーションをインストールします。
これで、任意のディレクトリにインストールできるはずです。私にとって完璧に動作します。
ls laZ /mnt
SE Linuxが有効になっている場合に、セキュリティコンテキストを確認します。その場合、ラベルの付け替えが必要になる場合があります。 errors=remount-ro
も調査する必要があります(ただし、lsattr
が失敗しない限り、/mnt
inode自体が壊れています)。これらのマウントポイント用に新しいディレクトリiノードを作成することは、試してみる価値があります。それが機能する場合、それらを交換できます。
1)おそらく、「/ mnt/vzsnap0」は読み取り専用としてマウントされていますか?
それはあなたから言うかもしれません:
/dev/pve/root / ext4 errors=remount-ro 0 1
'errors = remount-ro'は、読み取り専用のようにパーティションを誤って再マウントした場合を意味します。おそらく、この設定はマウントされたファイルシステムにも適用されます。
次のリンクのようにドライブを再マウントしてみてください。 https://askubuntu.com/questions/175739/how-do-i-remount-a-filesystem-as-read-write
それが成功した場合は、後で手動でディレクトリを作成しますか?
2)それでも解決しない場合: https://www.linuxquestions.org/questions/linux-security-4/mkdir -throws-permission-denied-error-in-a-directoy-even-with-root-ownership-and-777-permission-4175424944 / そこで、誰かがコメントしました:
ディレクトリを含むパーティションのファイルシステムは何ですか。[?]ディレクトリのアクセス権を確認するか、それが別のディレクトリへのシンボリックリンクかどうかを確認してください。ディレクトリがNFSマウントの場合、rootsquashはrootによる書き込みを防止できます。
属性を確認します(lsattr)。 ACLを確認します(getfacl)。 selinuxの制限を確認します。 (ls -Z)
ファイルシステムが破損している場合、最初はRWでマウントされている可能性がありますが、不良領域に書き込もうとした場合は、ROに変更してください。