我正在尝试在 VirtualBox 映像中创建 LUKS 加密文件。除非加密文件驻留在 VirtualBox 共享文件夹中,否则它可以正常工作。
错误输出为:
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.945147 s, 11.1 MB/s
WARNING!
========
This will overwrite data on test.tomb irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Enter passphrase for test.tomb:
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 8192 1k blocks and 2048 inodes
Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
mount: /dev/mapper/tomb is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/mapper/tomb,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
它可以在 Vagrant 中轻松重现。
流浪文件:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "debian/jessie64"
config.vm.synced_folder 'tombs', '/tombs'
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y cryptsetup
mkdir -p /media/tomb
cat > /test.sh <<-EOF
#!/bin/bash
cd \$1
dd if=/dev/urandom of=test.tomb bs=1M count=10
cryptsetup -y luksFormat test.tomb
cryptsetup luksOpen test.tomb tomb
mkfs.ext4 -j /dev/mapper/tomb
mount /dev/mapper/tomb /media/tomb
ls /media/tomb
umount /media/tomb
cryptsetup luksClose tomb
EOF
SHELL
end
设置流浪者:
mkdir tombs
vagrant plugin install vagrant-vbguest
vagrant up
vagrant ssh
测试一下:
sudo su -
bash /test.sh /root # works fine
bash /test.sh /tombs # does not work
mount | grep tombs
显示:
tombs on /tombs type vboxsf (rw,nodev,relatime)
dmesg
显示:
[ 267.574832] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
当 LUKS 文件位于共享文件夹中时,这是一个已知的限制吗?如果不是,我可能做错了什么?
答案1
我能够使用您描述的步骤进行重现。共享文件夹是来宾添加内核模块的特殊功能,在功能上可能不等同于本地驱动器。
我还尝试在环回设备内创建 LUKS 文件驱动器(因为这就是我过去完成 LUKS 文件驱动器的方式),它甚至无法格式化文件,它在后检查时失败。
我还尝试强制 Vagrantfile 中共享的所有者为 root,似乎没有什么区别。还尝试将root
和添加vagrant
到vboxsf
组中,但这也没有帮助。
所以简短的答案是肯定的,这似乎是“简单”本机 virtualbox 共享文件夹的限制。我没有尝试的一件事是 vagrant 支持 nfs 风格的共享文件夹,这需要更多的努力,但可能表现不同。