vboxsf 마운트 지점에서 LUKS 암호화 파일을 생성하는 방법은 무엇입니까?

vboxsf 마운트 지점에서 LUKS 암호화 파일을 생성하는 방법은 무엇입니까?

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및 추가를 시도했지만 그것도 도움이 되지 않았습니다.vagrantvboxsf

짧은 대답은 '예'입니다. 이는 "간단한" 기본 virtualbox 공유 폴더의 제한 사항인 것 같습니다. 내가 시도하지 않은 한 가지는 vagrant가 nfs 스타일 공유 폴더를 지원한다는 것인데, 이는 더 많은 노력이 필요하지만 다르게 동작할 수 있습니다.

관련 정보