Como posso acessar uma unidade interna de meus sistemas convidados? Meu host é o Windows 7.
Eu tentei o manual , mas quando eu conecto o novo vmdk a um convidado do Windows 7, ele é exibido como não formatado com espaço em disco zero. O comando para criar o vmdk é:
VBoxManage.exe internalcommands createrawvmdk -filename C:\Users\me\.Virtualbox\VDI\mydrive.vmdk -rawdisk \.\PhysicalDrive0
Onde o número por trás do PhysicalDrive é o número do disco no Gerenciamento do computador - > Gerenciamento de disco.
Se eu entendi o problema corretamente, o manual parece abordar usando o disco rígido como um dispositivo de inicialização em vez de armazenamento.
Minha motivação para simplesmente adicionar outro disco ao meu convidado virtual é que tenho armazenamento adicional que pode ser acessado sem sobrecarga de virtualização. Compartilhar dados não é um problema. O disco em si não armazena dados que são importantes, embora eu não gostaria de excluí-lo se isso for uma opção. Eu vou usar pastas compartilhadas por enquanto, mas elas são lentas em comparação.
[EDIT] Desculpe pela confusão, a imagem vm que eu usei é o Windows XP, não o Windows 7. Eu criei um novo vmdk com privilégios de administrador, como sugerido nos comentários. O comportamento não mudou embora. Em seguida, tentei acessar o disco no meu Ubuntu vm. Na primeira partida, recebi um erro VERR_ACCESS_DENIED, verifique se há espaço livre suficiente. Depois de reiniciar o vm com força, consegui acessar o disco através do gerenciador de arquivos. Eu também tentei acessar o disco de um Windows 7 vm (sim, desta vez realmente o Windows 7). Lá ocorreu o mesmo erro VERR_ACCESS_DENIED. Em contraste com o Ubuntu vm reapareceu toda vez que eu reiniciei (três vezes).
[EDIT2] A implementação parece ser falha. Escrevi um script para escrever 10 GB de arquivos de 1 MB, 10 GB de 2 GB e assim por diante. Primeiro, recebi um erro no arquivo 6200.th 1MB. Na próxima execução, o mesmo erro ocorreu no primeiro arquivo de 3MB:
/bin/dd: opening '/media/Ultra_/samplefiles/3MB_1': Input/output error
A partir daí, recebo um erro de E / S ao tentar acessar o diretório samplefiles de qualquer forma.
[EDIT3] Aqui está um script de teste para reproduzir o erro. Se eu acessar o disco através do meu sistema host, não consigo ver os arquivos / pastas que eu escrevi para ele através do convidado. No guest em si, os arquivos são visíveis e o tamanho do sistema de arquivos do sistema de arquivos raw visível por meio de df -h diminui à medida que eu escrevo arquivos nele. Ainda posso acessar outros arquivos no disco depois que o erro ocorreu.
#!/usr/bin/python
"""Generate directory of files for testing."""
import sys, os
import argparse
try:
import sh
from sh import dd
except:
print 'Please install the python sh module first : pip install sh'
exit(1)
class MyParser(argparse.ArgumentParser):
def error(self, message):
print_help()
sys.exit(1)
def print_help():
print
print ' Not enough arguments.\n'
print ' Example: '
print ' %s directory_for_generated_files' % sys.argv[0]
print ' Generate 10GB worth of 1MB, 2MB, 3MB, 4MB, 5MB, and 6MB files to the directory *directory_for_generated_files*.'
print
def main():
parser = MyParser()
parser.add_argument('directory')
args = parser.parse_args()
directory = args.directory
if not os.path.exists(directory):
os.makedirs(directory)
filesize_arr = [1,2,3,4,5,6]
filequantity_arr = [10000,5000,3333,2500,2000,1667]
idx = 0
for size in filesize_arr:
for nr in range(1,filequantity_arr[idx]+1): # from 1 to file quantity
filename = directory+'/'+str(size)+'MB_'+str(nr)
print "writing "+directory+'/'+str(size)+'MB_'+str(nr)
dd('if=/dev/zero', 'of='+filename, 'bs=1MB', 'count='+str(size))
idx += 1
if __name__ == '__main__':
main()
[EDIT4] As alterações feitas no sistema de arquivos não são visíveis após o reinício da máquina virtual.