virt-install ... --disk [path to your existing image] --import ...
- импорт
Пропустите процесс установки ОС и создайте гостя вокруг существующего образа диска. Устройство, используемое для начальной загрузки, является первым устройством, указанным через "-диском" или "-файл".
- диск [путь]
путь - Путь к некоторым носителям для использования, существующий или нет. Существующие медиа могут быть файловым или блочным устройством. Определение несуществующего пути подразумевает попытку создать новое устройство хранения данных и потребует определения значения 'размера'.
Rsync с --iconv
была бы опция, но необходимо будет сначала определить кодирование где ?
, :
и другие кодируются символами, которые позволяются в файловых системах FAT.
Для Вашего варианта использования Вы не используете все питание rsync для этого. Эта задача может быть сделана в нескольких строках сценария оболочки.
Вот сценарий удара, который копирует ~/Music
кому: /media/usb99
, пропуск регистрирует, которые являются более старыми на цели, и преобразовывает :
и ?
кому: _
. Это не обнаруживает столкновения (я предполагаю, что у Вас нет обоих foo:bar.mp3
и foo?bar.mp3
).
#!/bin/bash
set -e
shopt -s dotglob globstar
cd ~/Music
for source in **/*; do
target=/media/usb99/${source#"$HOME"/}
target=${target//[:?]/_}
if [[ -d $source ]]; then
mkdir -p -- "$target"
elif [[ $target -ot $source ]]; then
cp -p -- "$source" "$target"
fi
done
Этот сценарий работает под zsh с незначительными модификациями: замена shopt -s dotglob globstar
setopt dot_glob
и [[ $target -ot $source ]]
[[ ! -e $target || $target -ot $source ]]
.
Если это в целях резервирования, просто спрячьте tarball. Никакое имя файла не изводит тот путь.