https://www.oracle.com/technical-resources/articles/it-infrastructure/admin-manage-vbox-cli.html
Managing Oracle VM VirtualBox from the Command Line
Using Oracle VM VirtualBox's VBoxManage tool from the command line of the host operating system, you can control Oracle VM VirtualBox settings, create new VMs, and work on existing VMs. There were times when a command line was the main tool—sometimes the
www.oracle.com
오라클 Virtual Box 공식 문서를 참고해 VM을 설치하는 중 아래 명령어에서 오류가 발생했다.
sudo VBoxManage storageattach UbuntuTest --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/hard_drive_image/UbuntuTest.vdi
VBoxManage: error: Could not find a registered machine named 'UbuntuTest'
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "FindMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 334 of file VBoxManageStorageController.cpp
분명히 vm을 만들고 register까지 한 상태였다.
vboxmanage list vms
"UbuntuTest" {80f6b796-ad51-4db0-95f6-122f256742ed}
문제는 sudo 명령어였다. 링크에서 설명한 것은 virtual box는 any users(in the vboxusers group)에서 실행 가능하지만, root 계정에는 VirtualBox configuration이 비어있다는 것이다. 즉, root 계정은 vboxusers group이 아니다
따라서 root 계정에서는 registered vm이 아무것도 보이지 않는다.
sudo vboxmanage list vms
/path/to/hard_drive_image/UbuntuTest.vdi 에 접근 권한이 없어 root 계정을 사용한 것이었기 때문에, 해당 경로, 파일에 대한 권한을 변경하면 sudo 없이 명령어가 잘 실행된다.
VBoxManage storageattach UbuntuTest --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/hard_drive_image/UbuntuTest.vdi