Boot

在 VirtualBox 上安裝具有持久儲存的 Tails

  • May 11, 2019

Tails OS 通過 .iso 或 .img 文件分發。唯一的 .img 可以具有持久儲存,但只有 .iso 可以掛載到 VirtualBox 並正確啟動。我想擁有具有持久儲存和安裝 3rd 方軟體能力的 VirtualBox Tails 機器。

下面是我所做的。簡而言之,我決定使用快閃記憶體驅動器模擬器。我在 Ubuntu 18.04 上。

dummy_hcd.ko為我的核心建構並通過

$ sudo modprobe dummy_hcd
$ fallocate -l 8GiB /path/to/flash-drive-file
$ sudo modprobe g_mass_storage file=/path/to/flash-drive-file idVendor=0x1d6b idProduct=0x0104 iManufacturer=Myself iProduct=VirtualBlockDevice iSerialNumber=123

然後我通過發出以下命令(是我的虛擬快閃記憶體驅動器)使用通常的 USB 快閃記憶體驅動器將Tails OS .img 文件擴展至該驅動器dd``/dev/sdd

$ dd if=tails-amd64-3.13.2.img of=/dev/sdd bs=16M

之後,我得到了/dev/sdd1可以掛載並查看圖像內容的分區。它的大小正好等於tails-amd64-3.13.2.img文件大小。

/dev/sdd然後我創建了綁定到的.vmdk VirtualBox 文件

$ sudo VBoxManage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdd 

我創建了新的虛擬機並選擇了這個 .vmdk 文件,然後啟動了它。不幸的是,在啟動時抱怨磁碟空間不足並停止啟動。我採取gparted並調整了這個分區的大小。gparted向我顯示一條消息,建議修復 GPT 表,我接受了它。也一樣 parted

Warning: Not all of the space available to /dev/sdd appears to be used, you can
fix the GPT to use all of the space (an extra 14364672 blocks) or continue with
the current setting? 
Fix/Ignore? Fix                                                           
Model: Linux File-Stor Gadget (scsi)
Disk /dev/sdd: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name   Flags
1      1049kB  1235MB  1234MB  fat32        Tails  boot, hidden, legacy_boot, esp

在那之後(僅應用 GPT 修復就足夠了,而不是實際使用未分配的空間),不幸的是,我從核心收到了這條消息。我想它可能找不到要掛載的根文件系統,並init可能從該文件系統繼續引導過程。

在此處輸入圖像描述

但是 shell 可用,並且 rootfs 已安裝到 ramdisk 並且可以列出。

問題是您創建的磁碟沒有作為可移動 USB 驅動器連接到 VirtualBox,這正是 Tails(或者更準確地說,live-bootTails 使用的工具)正在尋找的東西。據我所知,VirtualBox 不支持將磁碟添加為可移動 USB 驅動器。

但由於您使用的是 Ubuntu,因此您可以使用virt-manager虛擬機中的持久捲而不是 VirtualBox:https ://tails.boum.org/doc/advanced_topics/virtualization/virt-manager/index.en.html#usb_image

AFAIK,你“不能”(*)同時執行 Virtualbox 和 virt-manager,因為它們會爭奪硬體的控制權(我很想在這個問題上錯了……)。如果一個人已經有很多 VirtualBox 虛擬機並且只想另外執行 Tails,那麼這是一個很好的選擇。需要可以同時執行兩者,或者找到在 Virtualbox 上執行此操作的方法。現在的替代方案(將所有內容移至 virt-manager)是一個更大的問題 - 一個相當高的要求。

(*)參考。https://askubuntu.com/questions/413511/can-virtualbox-and-kvm-run-alongside-each-other

Virtualbox 中有一個“有時”可以解決此限制的工具(“無法將磁碟添加為可移動 USB 驅動器”);Plop 引導管理器,參考: - https://www.howtogeek.com/97923/how-to-boot-a-vmware-virtual-machine-from-a-usb-drive/

引用自:https://unix.stackexchange.com/questions/517524