Пытаюсь установить TAILS с сохранением данных... Кажется, это очевидная вещь, верно? Постоянно выдаёт сообщение, что нет устройства для сохранения данных. Пробовал со SCSI-диском, перенаправлением на USB-диск и как USB-диск – безрезультатно. Есть какие-нибудь идеи? Я немного поколдую после перезагрузки, потому что я не включил root, но загрузка занимает целых 5 минут, хотя я могу писать на диск со скоростью 500 МБ/с, а у него 8 ГБ (более чем достаточно) ОЗУ.
Ссылки: Запуск TAILS в виртуальной машине с сохранением данных, эмуляция USB в Qemu, tails - virt-manager
Вот что я пробовал до сих пор:
```
# Создать виртуальную машину с размером хранилища, соответствующим размеру образа, используя графический интерфейс, запомнить
# расположение образа для хранения
# Загрузить образ USB-диска TAILS и изменить размер файла (в данном случае 32 ГБ)
root@pr0xm0x /fandango# truncate -s 52G /home/jackd/Downloads/tails-amd64-5.19-img/tails-amd64-5.19.img
root@pr0xm0x /fandango#
```
```
# Импортировать образ диска в виртуальную машину (в данном случае 105)
# Сделать резервную копию конфигурационного файла для виртуальной машины
root@pr0xm0x /fandango# cp /etc/pve/qemu-server/105.conf /etc/pve/qemu-server/105.conf.bak
```
```
# Открыть конфигурационный файл и найти диск, ищете эту строку
# (nimrod – это имя хранилища, vm-105 – это ВМ)
scsi0: nimrod:vm-105-disk-0,aio=native,cache=directsync,size=52G
```
```
# Найти диск
root@pr0xm0x /fandango# zfs list
NAME USED AVAIL REFER MOUNTPOINT
[...]
nimrod/vm-105-disk-0 52.0G 247G 12K -
[...]
```
```
# Найти ZVOL, который соответствует образу диска вашей ВМ
root@pr0xm0x ~# ls -l /dev/zvol/nimrod/vm-105-disk-0
lrwxrwxrwx 1 root root 10 Nov 17 00:07 /dev/zvol/nimrod/vm-105-disk-0 -> ../../zd96
```
```
# Дополнительная информация (не требуется)
$ udevadm info /dev/zd0
P: /devices/virtual/block/zd0
N: zd0
S: rpool/swap
S: zvol/rpool/swap
E: DEVLINKS=/dev/zvol/rpool/swap /dev/rpool/swap
E: DEVNAME=/dev/zd0
E: DEVPATH=/devices/virtual/block/zd0
E: DEVTYPE=disk
E: MAJOR=230
E: MINOR=0
E: SUBSYSTEM=block
E: TAGS=:systemd:
E: USEC_INITIALIZED=5679736
```
```
# Скопировать образ в ZVOL
root@pr0xm0x /fandango# dd bs=4M if=/home/jackd/Downloads/tails-amd64-5.19-img/tails-amd64-5.19.img of=/dev/zd96 status=progress
34292629504 bytes (34 GB, 32 GiB) copied, 85 s, 403 MB/s
8192+0 records in
8192+0 records out
34359738368 bytes (34 GB, 32 GiB) copied, 103.733 s, 331 MB/s
root@pr0xm0x /fandango#
```
```
# Отлично, ты должен быть в состоянии загрузиться с него и быть относительно доволен
# твоей скоростью передачи, но удивиться, почему он не загружается быстрее, ну что ж
# Загрузить ВМ аааа и она зависает во время загрузки, так что нам нужно
# изменить некоторые вещи
# Найти свои строки диска и устройства
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:8d95adedbc47' \
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=101' \
-device 'lsi,id=scsihw0,bus=pci.0,addr=0x5' \
-drive 'file=/dev/zvol/nimrod/vm-105-disk-0,if=none,id=drive-scsi0,cache=directsync,aio=native,format=raw,detect-zeroes=on' \
-device 'scsi-hd,bus=scsihw0.0,scsi-id=0,drive=drive-scsi0,id=scsi0,bootindex=100' \
```
```
# Необходимо установить исходный образ диска (id=drive-scsi0) в режим только для чтения
-set drive.drive-scsi0.readonly=on
```
```
# Создать новое USB-устройство из исходного образа, который мы нашли ранее
# (/dev/zvol/nimrod/vm-105-disk-0)
-drive 'file=/dev/zvol/nimrod/vm-105-disk-0,if=none,id=drive-usb0,format=raw,cache=none,aio=native,detect-zeroes=on'
```
```
# Подключить его как новое устройство
-device 'usb-storage,drive=drive-usb0,bootindex=1,removable=on'
```
```
# И добавить эти опции в конфигурационный файл как одну строку
args: -set drive.drive-scsi0.readonly=on -drive '"'"'file=/dev/zvol/nimrod/vm-105-disk-0'
-usb \
-device usb-ehci,id=ehci \
-device usb-storage,bus=ehci.0,drive=usbstick
```
```
# Святой трескучий, получилось!
```
```
# Я думаю, что ты мог бы избавиться от всего «создать SCSI-устройство и скопировать образ в
# SCSI-устройство, а затем сказать, что это USB, просто изменив файл= и указав на
# усечённый образ».
```
```
# Но он всё равно не позволит сохранять данные
```
```
# Даже несмотря на то, что на странице эмуляции USB написано
В конфигурационном представлении выберите VirtIO Disk 1 или IDE Disk 1
Установите Bus диска на USB.
Нажмите Применить.
Разверните раздел «Дополнительные параметры».
Включите Съемный.
Нажмите Применить снова.
Нажмите Начать установку в верхнем левом углу, чтобы начать виртуальную машину.
После загрузки USB-образа вы можете создать постоянное хранилище на нем.
```
Ссылки: Запуск TAILS в виртуальной машине с сохранением данных, эмуляция USB в Qemu, tails - virt-manager
Вот что я пробовал до сих пор:
```
# Создать виртуальную машину с размером хранилища, соответствующим размеру образа, используя графический интерфейс, запомнить
# расположение образа для хранения
# Загрузить образ USB-диска TAILS и изменить размер файла (в данном случае 32 ГБ)
root@pr0xm0x /fandango# truncate -s 52G /home/jackd/Downloads/tails-amd64-5.19-img/tails-amd64-5.19.img
root@pr0xm0x /fandango#
```
```
# Импортировать образ диска в виртуальную машину (в данном случае 105)
# Сделать резервную копию конфигурационного файла для виртуальной машины
root@pr0xm0x /fandango# cp /etc/pve/qemu-server/105.conf /etc/pve/qemu-server/105.conf.bak
```
```
# Открыть конфигурационный файл и найти диск, ищете эту строку
# (nimrod – это имя хранилища, vm-105 – это ВМ)
scsi0: nimrod:vm-105-disk-0,aio=native,cache=directsync,size=52G
```
```
# Найти диск
root@pr0xm0x /fandango# zfs list
NAME USED AVAIL REFER MOUNTPOINT
[...]
nimrod/vm-105-disk-0 52.0G 247G 12K -
[...]
```
```
# Найти ZVOL, который соответствует образу диска вашей ВМ
root@pr0xm0x ~# ls -l /dev/zvol/nimrod/vm-105-disk-0
lrwxrwxrwx 1 root root 10 Nov 17 00:07 /dev/zvol/nimrod/vm-105-disk-0 -> ../../zd96
```
```
# Дополнительная информация (не требуется)
$ udevadm info /dev/zd0
P: /devices/virtual/block/zd0
N: zd0
S: rpool/swap
S: zvol/rpool/swap
E: DEVLINKS=/dev/zvol/rpool/swap /dev/rpool/swap
E: DEVNAME=/dev/zd0
E: DEVPATH=/devices/virtual/block/zd0
E: DEVTYPE=disk
E: MAJOR=230
E: MINOR=0
E: SUBSYSTEM=block
E: TAGS=:systemd:
E: USEC_INITIALIZED=5679736
```
```
# Скопировать образ в ZVOL
root@pr0xm0x /fandango# dd bs=4M if=/home/jackd/Downloads/tails-amd64-5.19-img/tails-amd64-5.19.img of=/dev/zd96 status=progress
34292629504 bytes (34 GB, 32 GiB) copied, 85 s, 403 MB/s
8192+0 records in
8192+0 records out
34359738368 bytes (34 GB, 32 GiB) copied, 103.733 s, 331 MB/s
root@pr0xm0x /fandango#
```
```
# Отлично, ты должен быть в состоянии загрузиться с него и быть относительно доволен
# твоей скоростью передачи, но удивиться, почему он не загружается быстрее, ну что ж
# Загрузить ВМ аааа и она зависает во время загрузки, так что нам нужно
# изменить некоторые вещи
# Найти свои строки диска и устройства
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:8d95adedbc47' \
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=101' \
-device 'lsi,id=scsihw0,bus=pci.0,addr=0x5' \
-drive 'file=/dev/zvol/nimrod/vm-105-disk-0,if=none,id=drive-scsi0,cache=directsync,aio=native,format=raw,detect-zeroes=on' \
-device 'scsi-hd,bus=scsihw0.0,scsi-id=0,drive=drive-scsi0,id=scsi0,bootindex=100' \
```
```
# Необходимо установить исходный образ диска (id=drive-scsi0) в режим только для чтения
-set drive.drive-scsi0.readonly=on
```
```
# Создать новое USB-устройство из исходного образа, который мы нашли ранее
# (/dev/zvol/nimrod/vm-105-disk-0)
-drive 'file=/dev/zvol/nimrod/vm-105-disk-0,if=none,id=drive-usb0,format=raw,cache=none,aio=native,detect-zeroes=on'
```
```
# Подключить его как новое устройство
-device 'usb-storage,drive=drive-usb0,bootindex=1,removable=on'
```
```
# И добавить эти опции в конфигурационный файл как одну строку
args: -set drive.drive-scsi0.readonly=on -drive '"'"'file=/dev/zvol/nimrod/vm-105-disk-0'
-usb \
-device usb-ehci,id=ehci \
-device usb-storage,bus=ehci.0,drive=usbstick
```
```
# Святой трескучий, получилось!
```
```
# Я думаю, что ты мог бы избавиться от всего «создать SCSI-устройство и скопировать образ в
# SCSI-устройство, а затем сказать, что это USB, просто изменив файл= и указав на
# усечённый образ».
```
```
# Но он всё равно не позволит сохранять данные
```
```
# Даже несмотря на то, что на странице эмуляции USB написано
В конфигурационном представлении выберите VirtIO Disk 1 или IDE Disk 1
Установите Bus диска на USB.
Нажмите Применить.
Разверните раздел «Дополнительные параметры».
Включите Съемный.
Нажмите Применить снова.
Нажмите Начать установку в верхнем левом углу, чтобы начать виртуальную машину.
После загрузки USB-образа вы можете создать постоянное хранилище на нем.
```
