virt-sparsify — зробити
диск
віртуальної
машини
розрідженим
virt-sparsify [--параметри] вхідний_диск вихідний_диск
virt-sparsify [--параметри] --in-place диск
Virt-sparsify —
інструмент,
який може
зробити
диск
віртуальної
машини (або
будь-який
образ
диска)
розрідженим,
тобто
спеціально
зменшеним.
Це означає,
що вільне
місце в
образі
диска
можна буде
перетворити
на вільне
місце в
основній
системі.
Virt-sparsify може
знаходити
і
розріджувати
вільне
місце у
більшості
файлових
систем
(наприклад
у ext2/3/4, btrfs, NTFS тощо), а
також у
фізичних
томах LVM.
Крім того,
програма virt-sparsify
може
перетворювати
диски з
одного
формату на
інший,
наприклад,
перетворити
образ
диска у
простому
форматі (raw)
на
розріджений
образ у
форматі qcow2.
Virt-sparsify може
працювати
з будь-яким
образом
диска, не
лише з
образами
віртуальних
машин. Втім,
якщо у
вашій
віртуальній
машині
декілька
дисків і
використано
керування
томами, virt-sparsify
працюватиме,
але не дуже
ефективно
(
http://bugzilla.redhat.com/887826).
Якщо
вхідними
даними є
образ raw, буде
виведено
розріджені
дані raw.
Вам
слід
перевірити
розмір
виведених
даних за
допомогою
інструмента,
який
обробляє
розріджені
дані,
наприклад
"du -sh". Різниця
може бути
досить
значною:
$ ls -lh test1.img
-rw-rw-r--. 1 rjones rjones 100M Aug 8 08:08 test1.img
$ du -sh test1.img
3.6M test1.img
(Порівняйте
видимий
розмір у
100
МБ зі
справжнім
розміром у
3,6 МБ)
- •
- До
використання
цього
інструмента
віртуальну
машину
слід
зупинити.
- •
- Virt-sparsify може
потребувати
для роботи
удвічі
більшого
місця на
диску, ніж
розмір
початкового
образу
диска (1
тимчасова
копія + 1
образ
призначення).
Ця оцінка є
максимальною,
і зазвичай
потрібно
набагато
менше
місця.
Якщо ви
використовуєте
параметр
--in-place, значні
обсяги
місця на
диску для
тимчасового
зберігання
даних не
знадобляться.
- •
- Virt-sparsify не
може
змінювати
розміри
образів
дисків. Для
зміни
розмірів
дисків
скористайтеся
virt-resize(1).
- •
- Virt-sparsify не
може
працювати
із
зашифрованими
дисками. У
libguestfs
передбачено
підтримку
самих
зашифрованих
дисків, але
зашифровані
диски не
може бути
розріджено.
- •
- Virt-sparsify ще не
може
розріджувати
місце між
розділами.
Зауважте,
що це місце
часто
використовується
для
критичних
даних,
зокрема
завантажувачів,
тому,
насправді,
воно може
бути
зовсім не
таким
зайвим, як
може
здатися.
- •
- У режимі
копіювання
внутрішні
знімки qcow2 не
копіюються
на образ
призначення.
Перш ніж
розпочати
користування
цією
програмою,
вам також
варто
ознайомитися
зі
сторінками
підручника
щодо
пов'язаних
із нею
інструментів,
virt-filesystems(1) та
virt-df(1).
Типовий
приклад
використання:
virt-sparsify вхідний_диск вихідний_диск
Ця команда
копіює
"вхідний_диск"
на диск
"вихідний_диск",
роблячи
результат
розрідженим.
Диск
"вихідний_диск"
буде
створено
або
перезаписано,
якщо такий
диск уже
існує.
Програма
сама
визначить
формат
вхідного
диска
(наприклад
qcow2) і
використає
той самий
формат для
вихідного
диска.
Для
перетворення
диска з
одного
формату на
інший
скористайтеся
параметром
--convert:
virt-sparsify disk.raw --convert qcow2 disk.qcow2
Virt-sparsify
намагається
занулити і
розрідити
вільне
місце на
усіх
файлових
системах,
які
вдасться
знайти на
початковому
образі
диска. Ви
можете
наказати
програмі
ігнорувати
(не
занулювати
вільне
місце)
певні
файлові
системи за
допомогою
такої
команди:
virt-sparsify --ignore /dev/sda1 вхідний_диск вихідний_диск
Щоб
отримати
список
файлових
систем на
образі
диска,
скористайтеся
командою
virt-filesystems(1).
Починаючи
з версії virt-sparsify
≥ 1.26, ви
можете
розріджувати
образ
диска на
місці, ось
так:
virt-sparsify --in-place disk.img
- --help
- Показати
довідкове
повідомлення.
-
--check-tmpdir ignore
-
--check-tmpdir continue
-
--check-tmpdir warn
-
--check-tmpdir fail
- Переконайтеся,
чи
достатньо
вільного
місця у
каталозі,
вказаному
за
допомогою
змінної
середовища
"TMPDIR" або
параметра
--tmp, для
завершення
дії. Це
лише
оцінка.
Якщо під
час
перевірки
буде
виявлено
проблему,
ви можете
піти одним
з таких
шляхів:
- •
-
ігнорувати
її,
- •
- вивести
попередження
і
продовжити,
- •
-
попередити
і почекати,
доки
користувач
натисне
клавішу Enter
(типова
поведінка)
або
- •
-
вивести
попередження
про
помилку і
завершити
роботу.
Цей
параметр
не можна
поєднувати
із
параметром
--in-place.
- --colors
- --colours
- Використовувати
послідовності
символів ANSI
для
розфарбовування
повідомлень.
Ці
послідовності
типово
використовуються,
якщо дані
виводяться
на
термінал tty.
Якщо дані,
виведені
програмою,
спрямовуються
до файла,
послідовності
визначення
кольорів ANSI
буде
вимкнено,
якщо ви не
додасте до
команди
цей
параметр.
- --compress
- Стиснути
файл
виведених
даних. Це
працює,
лише якщо
форматом
виведення
даних є "qcow2".
Цей
параметр
не можна
поєднувати
із
параметром
--in-place.
-
--convert raw
-
--convert qcow2
-
--convert [інші
формати]
- Використовувати
"формат
виведення"
як формат
образу
призначення.
Якщо цей
параметр
не вказано,
буде
використано
той самий
формат, що
і у вхідних
даних.
Підтримуваними
і
працездатними
форматами
виведення
є такі: "raw",
"qcow2", "vdi".
Ви також
можете
скористатися
будь-яким
іншим
форматом,
підтримку
якого
передбачено
у програми
qemu-img(1),
наприклад
"vmdk", але
підтримка
інших
форматів
повністю
залежить
від
можливостей
qemu.
Зазвичай,
варто
визначати
формат за
допомогою
--convert,
оскільки
тоді virt-sparsify не
доведеться
вгадувати
формат
вхідних
даних.
Скоригувати
формат
виведення
даних
можна за
допомогою
параметрів
--compress, -o.
Цей
параметр
не можна
поєднувати
із
параметром
--in-place.
- --echo-keys
- Типово,
якщо virt-sparcify
попросить
вас ввести
ключ або
пароль,
програма
не
відтворюватиме
введені
символи на
екрані.
Якщо ви не
боїтеся
TEMPEST-нападів,
або у вашій
кімнаті
нікого,
окрім вас,
немає, ви
можете
скористатися
цим
прапорцем,
щоб бачити,
які саме
символи ви
вводите.
-
--format raw
-
--format qcow2
- Вказати
формат
образу
диска
вхідних
даних. Якщо
цей
прапорець
не вказано,
його буде
автоматично
визначено
на основі
даних
самого
образу.
Якщо ви
працюєте
із
образами
дисків
гостьових
систем у
форматі raw
із
ненадійних
джерел, вам
слід
завжди
вказувати
назву
формату.
-
--ignore
файлова_система
-
--ignore
група_томів
- Ігнорувати
вказану
файлову
систему.
Якщо не
використовується
--in-place, вільне
місце у
файловій
системі не
буде
занулено,
але наявні
нульові
блоки все
одно буде
розріджено.
Якщо
використовується
--in-place,
файлову
систему
буде
повністю
проігноровано.
У другій
формі
команда
призведе
до
ігнорування
вказаної
за назвою
групи
томів.
Використовуйте
назву
групи
томів без
префікса
/dev/,
наприклад
--ignore vg_foo
Цей
параметр
можна
вказувати
декілька
разів.
- --in-place
- Виконати
розрідження
на місці
замість
розрідження
копіюванням.
Див. розділ
"РОЗРІДЖЕННЯ
НА МІСЦІ"
нижче.
-
--key SELECTOR
- Specify a key for LUKS, to automatically open a LUKS device
when using the inspection. "ID" can be either the libguestfs
device name, or the UUID of the LUKS device.
-
--key "ID":key:KEY_STRING
- Use the specified "KEY_STRING" as
passphrase.
-
--key "ID":file:FILENAME
- Read the passphrase from FILENAME.
- --keys-from-stdin
- Read key or passphrase parameters from stdin. The default
is to try to read passphrases from the user by opening /dev/tty.
If there are multiple encrypted devices then you may need to supply multiple
keys on stdin, one per line.
- --machine-readable
-
--machine-readable=формат
- За
допомогою
цього
параметра
можна
зробити
виведені
дані
придатнішими
для
обробки
комп'ютером,
якщо для
цієї
обробки
використовуються
інші
програми.
Див.
"ПРИДАТНЕ
ДО ЧИТАННЯ
КОМП'ЮТЕРОМ
ВИВЕДЕННЯ"
нижче.
-
-o
параметр[,параметр,...]
- Передати
параметри
-o до
програми
qemu-img(1) для
коригування
формату
виведення
даних.
Перелік
доступних
параметрів
залежить
від
формату
виведення
(див. --convert) і
встановленої
версії
програми qemu-img.
Вам слід
скористатися
-o не
більше
одного
разу. Щоб
передати
декілька
параметрів,
відокремте
їх комами.
Приклад:
virt-sparsify --convert qcow2 \
-o cluster_size=512,preallocation=metadata ...
Цей
параметр
не можна
поєднувати
із
параметром
--in-place.
- -q
- --quiet
- Цей
параметр
вимикає
смужки
поступу та
інші
необов'язкові
до
виведення
дані.
-
--tmp
блоковий_пристрій
-
--tmp
каталог
- Лише у
режимі
копіювання,
використати
вказаний
за назвою
пристрій
або
каталог як
місце для
тимчасової
накладки
(див. також
"TMPDIR" нижче).
Якщо як
параметр
вказано
блоковий
пристрій,
блоковий
пристрій
буде
записано
безпосередньо.
Зауважте,
що при
цьому з
блокового
пристрою
буде
повністю
витерто
наявні
дані.
Якщо як
параметр
вказано
каталог,
визначення
параметра
буде
рівнозначним
заданню
значення
змінної
середовища
"TMPDIR".
Цей
параметр
не можна
поєднувати
із
параметром
--in-place.
-
--tmp prebuilt:файл
- Лише у
режимі
копіювання,
спеціалізований
параметр --tmp
prebuilt:файл (де
"prebuilt:" слід
записувати
буквально)
наказує virt-sparsify
використовувати
як місце
зберігання
тимчасових
даних файл
qcow2 "файл".
- •
- Файл
має бути
наново
форматовано
як qcow2, а
вхідний
диск буде
резервним
файлом.
- •
- Якщо ви
повторно
запускатимете
virt-sparsify, вам
слід
повторно
створювати
файл перед
кожним
запуском.
- •
- Virt-sparsify не
вилучає
цей файл.
Цей
параметр
використовується
oVirt, де
потрібен
спеціальним
чином
форматований
тимчасовий
файл.
- -v
- --verbose
- Увімкнути
докладний
показ
повідомлень
з метою
діагностики.
- -V
- --version
- Показати
дані щодо
версії і
завершити
роботу.
- --wrap
- Wrap error, warning, and informative messages. This is the
default when the output is a tty. If the output of the program is
redirected to a file, wrapping is disabled unless you use this
option.
- -x
- Увімкнути
трасування
викликів
програмного
інтерфейсу
libguestfs.
-
--zero
розділ
-
--zero
логічний_том
- Занулити
вміст
вказаного
за назвою
розділу
або
логічного
тому у
гостьовій
системі.
Усі дані на
пристрої
буде
втрачено,
але буде
досягнуто
чудової
розрідженості!
Цей
параметр
можна
вказувати
в одній
команді
декілька
разів.
Починаючи
з virt-sparsify ≥ 1.26,
програма
може
виконувати
розрідження
на місці
(замість
копіювання
з вхідного
диска до
вихідного
диска). Таке
розрідження
є
ефективнішим.
Втім, за
його
використання
не можна
отримати
більше
місця у
основній
системі,
якщо
порівнювати
із
розрідженням
із
копіюванням.
Щоб
скористатися
цим
режимом,
вкажіть
образ
диска, який
буде
змінено на
місці:
virt-sparsify --in-place disk.img
Деякі
параметри
несумісні
із цим
режимом:
--convert,
--compress і
-o,
оскільки
їхнє
використання
вимагає
загальної
зміни
формату
диска;
--check-tmpdir,
оскільки
великі
обсяги для
зберігання
тимчасових
даних не
потрібні.
Розрідження
на місці
працює
завдяки
підтримці
відкидання
(або
обрізання
чи
скасування
отримання
пам'яті).
Для
виведення
даних у
зручному
для
машинної
обробки
форматі
можна
скористатися
параметром
--machine-readable.
Додавання
цього
параметра
робить
зручним
використання
virt-sparcify з інших
програм,
графічних
інтерфейсів
тощо.
Існує два
способи
використання
цього
параметра.
Спочатку,
скористайтеся
цим
параметром
окремо, щоб
опитати
систему
щодо
можливостей
виконуваного
файла virt-sparcify.
Типово
виведені
дані
виглядатимуть
якось так:
$ virt-sparsify --machine-readable
virt-sparsify
ntfs
btrfs
Виводиться
список
можливостей,
по одній на
рядок, і
програма
завершує
роботу зі
станом 0.
По-друге,
можна
скористатися
цим
параметром
у
поєднанні
із іншими
параметрами
для того,
щоб
зробити
звичайні
виведені
програмою
дані
придатнішими
для
подальшої
машинної
обробки.
У поточній
версії це
означає
таке:
- 1.
- Повідомлення
смужки
поступу
можна
обробляти
зі
стандартного
виведення,
шукаючи їх
за таким
формальним
виразом:
^[0-9]+/[0-9]+$
- 2.
- Програма,
яка
надсилає
виклик, має
обробляти
повідомлення,
надіслані
до
стандартного
виведення,
(окрім
повідомлень
смужки
поступу) як
повідомлення
щодо стану.
Ці
повідомлення
може бути
записано
до журналу
і/або
показано
користувачеві.
- 3.
- Програма,
яка
надсилає
виклик, має
обробляти
повідомлення,
надіслані
до stderr як
повідомлення
про
помилки.
Крім того,
virt-sparcify
завершує
роботу із
ненульовим
кодом
стану, якщо
станеться
критична
помилка.
Підтримку
параметра
--machine-readable
передбачено
у всіх
версіях virt-sparsify.
Можна
вказати
рядок
форматування
для
керування
виведенням,
див.
"РОЗШИРЕНЕ
ПРИДАТНЕ
ДО ЧИТАННЯ
КОМП'ЮТЕРОМ
ВИВЕДЕННЯ"
in
guestfs(3).
«Швидкий
запуск» Windows 8
може
заважати
роботі virt-sparsify.
Див.
"ПРИСИПЛЯННЯ
WINDOWS ТА
ШВИДКИЙ
ЗАПУСК WINDOWS 8" in
guestfs(3).
- ТИМЧАСОВИЙ
КАТАЛОГ
- Розташування
каталогу
тимчасових
даних, який
використовуватиметься
для
потенційно
великих
тимчасових
файлів-накладок.
У virt-sparsify ≥ 1.28 ви
можете
перевизначити
цю змінну
середовища
за
допомогою
параметра
--tmp.
На диску
має бути
достатньо
вільного
місця для
найгіршого
варіанта
для повної
копії
початкового
диска (
віртуального
розміру).
Якщо місця
недостатньо,
слід
встановити
для $TMPDIR
значення,
яке вказує
на інший
каталог, де
достатньо
місця.
Типовим
значенням
є /tmp.
Зауважте,
що якщо
файловою
системою у
$TMPDIR є tmpfs
(наприклад,
якщо
файловою
системою
/tmp є tmpfs, або
якщо ви
використовуєте
"TMPDIR=/dev/shm"),
типовим
розміром tmpfs
є
максимальне
значення
половини
фізичної
оперативної
пам'яті.
Якщо virt-sparsify
знадобиться
більше
місця,
програма
просто
«повисне».
Якщо ви
побоюєтеся
такого
перебігу
подій, або
скористайтеся
реальним
диском, або
збільште
максимальний
розмір
точки
монтування
tmpfs,
наприклад
так:
mount -o remount,size=10G /tmp
Якщо ви
використовуєте
параметр
--in-place, значні
обсяги
місця на
диску для
тимчасового
зберігання
даних не
знадобляться.
Опис інших
змінних
середовища
наведено у
розділі "ENVIRONMENT
VARIABLES" in
guestfs(3).
Ця
програма
повертає 0,
якщо дію
виконано
без жодної
помилки (це
не
обов'язково
означає, що
місце на
диску
звільнилося).
Ненульовий
код виходу
вказує на
помилку.
Якщо
повернуто
код виходу 3
і було
використано
параметр
--in-place, це
означає, що
у libguestfs не
передбачено
підтримки
відкидання
зайвого
місця на
диску, отже,
доведеться
користуватися
режимом
копіювання.
virt-df(1),
virt-filesystems(1),
virt-resize(1),
virt-rescue(1),
guestfs(3),
guestfish(1),
truncate(1),
fallocate(1),
qemu-img(1),
http://libguestfs.org/.
Richard W.M. Jones
http://people.redhat.com/~rjones/
Copyright (C) 2011-2020 Red Hat Inc.
To get a list of bugs against libguestfs, use this link:
https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
To report a new bug against libguestfs, use this link:
https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
When reporting a bug, please supply:
- •
- The version of libguestfs.
- •
- Where you got libguestfs (eg. which Linux distro, compiled
from source, etc)
- •
- Describe the bug accurately and give a way to reproduce
it.
- •
- Run libguestfs-test-tool(1) and paste the
complete, unedited output into the bug report.