1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688
|
=head1 НАЗВА
guestfish — командна оболонка файлової системи гостьової операційної системи
=head1 КОРОТКИЙ ОПИС
guestfish [--параметри] [команди]
guestfish
guestfish [--ro|--rw] -a диск.img
guestfish [--ro|--rw] -a диск.img -m пристрій[:точка_монтування]
guestfish -d домен-libvirt
guestfish [--ro|--rw] -a диск.img -i
guestfish -d домен-libvirt -i
=head1 ОПИС
Guestfish — командна оболонка та засіб командного рядка для вивчення і
внесення змін до файлових систем віртуальних машин. У програмі
використовується libguestfs і надається доступ до усіх функціональних
можливостей програмного інтерфейсу guestfs, див. L<guestfs(3)>.
Guestfish надає вам структурований доступ до програмного інтерфейсу
libguestfs зі скриптів оболонки, командного рядка або інтерактивно. Якщо ви
хочете відновити пошкоджений образ віртуальної машини, вам слід скористатися
командою L<virt-rescue(1)>.
=head1 ПРИКЛАДИ
=head2 Як інтерактивну оболонку
$ guestfish
Ласкаво просимо до guestfish, оболонки файлової гостьової системи для
редагування файлових систем віртуальних машин та образів дисків.
Введіть: «help» для отримання списку команд
«man» для читання підручника
«quit», щоб вийти з оболонки
><fs> add-ro диск.img
><fs> run
><fs> list-filesystems
/dev/sda1: ext4
/dev/vg_guest/lv_root: ext4
/dev/vg_guest/lv_swap: swap
><fs> mount /dev/vg_guest/lv_root /
><fs> cat /etc/fstab
# /etc/fstab
# Created by anaconda
[...]
><fs> exit
=head2 Зі скриптів оболонки
Створення файла F</etc/motd> у гостьовій системі або на образі диска:
guestfish <<_EOF_
add disk.img
run
mount /dev/vg_guest/lv_root /
write /etc/motd "Welcome, new users"
_EOF_
Виведення списку логічних томів LVM на образі диска:
guestfish -a диск.img --ro <<_EOF_
run
lvs
_EOF_
Виведення списку усіх файлових систем на образі диска:
guestfish -a диск.img --ro <<_EOF_
run
list-filesystems
_EOF_
=head2 У одному рядку команди
Оновлення F</etc/resolv.conf> у гостьовій системі:
guestfish \
add disk.img : run : mount /dev/vg_guest/lv_root / : \
write /etc/resolv.conf "nameserver 1.2.3.4"
Інтерактивне редагування F</boot/grub/grub.conf>:
guestfish --rw --add disk.img \
--mount /dev/vg_guest/lv_root \
--mount /dev/sda1:/boot \
edit /boot/grub/grub.conf
=head2 Автоматичне монтування дисків
Скористайтеся параметром I<-i> для автоматичного монтування дисків з
віртуальної машини:
guestfish --ro -a disk.img -i cat /etc/group
guestfish --ro -d libvirt-domain -i cat /etc/group
Іншим способом редагування F</boot/grub/grub.conf> інтерактивно є такий:
guestfish --rw -a disk.img -i edit /boot/grub/grub.conf
=head2 Як інтерпретатор скриптів
Створити диск у 100 МБ, що міститиме розділ у форматі ext2:
#!/usr/bin/guestfish -f
sparse test1.img 100M
run
part-disk /dev/sda mbr
mkfs ext2 /dev/sda1
=head2 Розпочати з приготованого диска
Створити диск розміром 1 ГБ з назвою F<test1.img>, який міститиме один
форматований у ext2 розділ:
guestfish -N fs
Щоб отримати список доступних варіантів, віддайте таку команду:
guestfish -N help | less
=head2 Віддалені диски
Доступ до віддаленого диска за допомогою ssh:
guestfish -a ssh://example.com/шлях/до/диска.img
=head2 Дистанційне керування
eval "`guestfish --listen`"
guestfish --remote add-ro disk.img
guestfish --remote run
guestfish --remote lvs
=head1 ПАРАМЕТРИ
=over 4
=item B<--help>
Вивести загальну довідку щодо параметрів.
=item B<-h>
=item B<--cmd-help>
Вивести список усіх доступних команд guestfish.
=item B<-h> КОМАНДА
=item B<--cmd-help> КОМАНДА
Показати докладну довідку щодо певної команди.
=item B<-a> ОБРАЗ
=item B<--add> ОБРАЗ
Додати блоковий пристрій або образ віртуальної машини до командної оболонки.
Формат образу диска визначається автоматично. Щоб перевизначити його і
примусово використати певний формат, скористайтеся параметром
I<--format=..>.
Використання цього прапорця еквівалентне використанню команди C<add> з
C<readonly:true>, якщо вказано прапорець I<--ro>, і з C<format:...>, якщо
вказано прапорець I<--format=...>.
=item B<-a> адреса
=item B<--add> адреса
Додати віддалений диск. Див. L</ДОДАВАННЯ ВІДДАЛЕНОГО СХОВИЩА>.
__INCLUDE:blocksize-option.pod__
=item B<-c> адреса
=item B<--connect> адреса
Якщо використано у поєднанні із параметром I<-d>, визначає адресу libvirt,
якою слід скористатися. Типово, використовується типове з'єднання libvirt.
=item B<--csh>
Якщо використовується параметр I<--listen> і csh-подібна команда оболонка,
скористайтеся цим параметром. Див. розділі L</ВІДДАЛЕНЕ КЕРУВАННЯ І CSH>
нижче.
=item B<-d> ДОМЕН_LIBVIRT
=item B<--domain> ДОМЕН_LIBVIRT
Додати диски із названого домену libvirt. Якщо також використано параметр
I<--ro>, може бути використано будь-який домен libvirt. Втім, у режимі
запису тут можна вказати лише домени libvirt, які вимкнено.
Замість назв можна використовувати UUID доменів.
Використання цього прапорця, здебільшого, еквівалентне використанню команди
C<add-domain> із C<readonly:true>, якщо вказано прапорець I<--ro>, і з
C<format:...>, якщо вказано прапорець I<--format=...>.
=item B<--echo-keys>
Типово, якщо guestfish попросить вас ввести ключ або пароль, програма не
відтворюватиме введені символи на екрані. Якщо ви не боїтеся
TEMPEST-нападів, або у вашій кімнаті нікого, окрім вас, немає, ви можете
скористатися цим прапорцем, щоб бачити, які саме символи ви вводите.
=item B<-f> ФАЙЛ
=item B<--file> ФАЙЛ
Прочитати команди з файла C<ФАЙЛ>. Для написання суто скриптів guestfish
скористайтеся таким вступом:
#!/usr/bin/guestfish -f
=item B<--format=raw|qcow2|..>
=item B<--format>
Типовим значенням для параметра I<-a> є автоматичне визначення формату
образу диска. Використання цього параметра примусово визначає значення
параметрів I<-a> формату диска у наступному рядку команди. Використання
параметра I<--format> без аргументу перемикає програму у режим автоматичного
визначення у наступних параметрах I<-a>.
Приклад:
guestfish --format=raw -a disk.img
примусове встановлення формату без обробки (без автоматичного визначення)
для F<disk.img>.
guestfish --format=raw -a disk.img --format -a another.img
примусове встановлення формату без обробки (без автоматичного визначення)
для F<diskimg> і повернення до автоматичного визначення для F<another.img>.
Якщо ви користуєтеся ненадійними образами гостьових систем у необробленому
форматі, вам слід скористатися цим параметром для визначення формату
диска. Таким чином можна уникнути можливих проблем з захистом для
сформованих зловмисниками гостьових систем (CVE-2010-3851). Див. також
L</add>.
=item B<-i>
=item B<--inspector>
Використовуючи код L<virt-inspector(1)>, виконати інспектування дисків,
шукаючи операційну систему і монтуючи файлові системи так, як їх мало б бути
змонтовано у справжній віртуальній машині.
Типові варіанти використання:
guestfish -d myguest -i
(для неактивного домену libvirt із назвою I<myguest>) або:
guestfish --ro -d myguest -i
(для активних доменів, лише читання), або вказати блоковий пристрій
безпосередньо:
guestfish --rw -a /dev/Guests/MyGuest -i
Зауважте, що синтаксис рядка команди було дещо змінено з часу старіших
версій guestfish. Але ви все ще можете використовувати застарілий синтаксис:
guestfish [--ro] -i диск.img
guestfish [--ro] -i домен-libvirt
Використання цього прапорця, здебільшого, еквівалентне до використання
команди C<inspect-os> із наступним використанням інших команд для монтування
файлових систем, які було знайдено.
__INCLUDE:key-option.pod__
__INCLUDE:keys-from-stdin-option.pod__
=item B<--listen>
Відгалузити процес у фоновий і очікувати на віддалені команди. Див. розділ
L</ВІДДАЛЕНЕ КЕРУВАННЯ GUESTFISH КРІЗЬ СОКЕТ> нижче.
=item B<--live>
З'єднатися із запущеною віртуальною машиною. (Експериментальна можливість,
див. L<guestfs(3)/ДОЛУЧЕННЯ ДО ЗАПУЩЕНИХ ФОНОВИХ СЛУЖБ>).
=item B<-m> пристрій[:точка_монтування[:параметри[:тип_файлової_системи]]]
=item B<--mount> пристрій[:точка_монтування[:параметри[:тип_файлової_системи]]]
Змонтувати названий розділ або логічний том до вказаної точки монтування.
Якщо точку монтування не вказано, типовим значенням є F</>.
Вам слід змонтувати щось до F</>, перш ніж ви зможете скористатися більшістю
команд.
Якщо вказано якісь параметри I<-m> або I<--mount>, буде автоматично запущено
гостьову систему.
Якщо ви не знаєте, які саме файлові системи містяться у образі диска, ви
можете або запустити guestfish без цього параметра і ознайомитися зі списком
доступних розділів, файлових систем та логічних томів (див. команди
L</list-partitions>, L</list-filesystems> і L</lvs>), або скористатися
програмою L<virt-filesystems(1)>.
Третьою (і нечасто використовуваною) частиною параметра монтування є список
параметрів монтування, які використовуються для того, щоб змонтувати
підлеглу файлову систему. Якщо такий список не буде задано, параметрами
монтування вважатиметься або порожній рядок, або C<ro> (другий варіант
використовується, якщо використано прапорець I<--ro>). Заданням параметрів
монтування ви перевизначаєте типовий варіант. Ймовірно, єдиним випадком,
коли вам може знадобитися це, є випадок вмикання списків керування доступом
(ACL) і/або розширених атрибутів, якщо у файловій системі передбачено їхню
підтримку:
-m /dev/sda1:/:acl,user_xattr
Використання цього прапорця є еквівалентним до використання команди
C<mount-options>.
Четвертою частиною параметра є назва драйвера файлової системи, якою слід
скористатися, зокрема C<ext3> або C<ntfs>. У визначенні цієї частини
параметра рідко виникає потреба, але вона може бути корисною, якщо для
файлової системи можна скористатися декількома драйверами (приклад: C<ext2>
і C<ext3>), або libguestfs визначає файлову систему помилково.
=item B<--network>
Уможливити для користувача QEMU роботу у мережі у гостьовій системі.
=item B<-N> [НАЗВА_ФАЙЛА=]ТИП
=item B<--new> [НАЗВА_ФАЙЛА=]ТИП
=item B<-N> B<help>
Приготувати свіжий образ диска у форматі C<ТИП>. Це альтернатива параметру
I<-a>: I<-a> додає наявний диск, а I<-N> створює попередньо форматований
диск із файловою системою і додає його. Див. L</ОБРАЗИ ПРИГОТОВАНИХ ДИСКІВ>
нижче.
=item B<-n>
=item B<--no-sync>
Вимкнути автоматичну синхронізацію. Типово, синхронізацію
увімкнено. Див. обговорення автоматичної синхронізації на сторінці
підручника L<guestfs(3)>.
=item B<--no-dest-paths>
Не виконувати доповнення за Tab у гостьовій файловій системі. Корисно мати
можливість натискати клавішу Tab для доповнення шляхів у гостьовій файловій
системі, але це може призвести до зайвих «прихованих» викликів
guestfs. Отже, цей параметр надає вам змогу вимкнути цю можливість.
=item B<--pipe-error>
Якщо запису не вдасться передати команди каналами (див. L</КАНАЛИ>), ця
команда поверне повідомлення про помилку.
Типово (також із історичних причин) такі помилки ігноруватимуться, отже,
наприклад:
><fs> команда_яка_багато_чого_виводить | head
не призводитиме до помилки.
=item B<--progress-bars>
Увімкнути смужки поступу, навіть якщо guestfish використовується не у
інтерактивному режимі.
Якщо guestfish використовується як інтерактивна командна оболонка, смужки
поступу буде типово увімкнено.
=item B<--no-progress-bars>
Вимкнути смужки поступу.
=item B<--remote>
=item B<--remote=>PID
Надіслати віддалені команди до C<$GUESTFISH_PID> або C<pid>. Див. розділ
L</ВІДДАЛЕНЕ КЕРУВАННЯ GUESTFISH КРІЗЬ СОКЕТ> нижче.
=item B<-r>
=item B<--ro>
Змінює значення параметрів I<-a>, I<-d> і I<-m> так, що диски додаються і
монтуються у режимі лише читання.
Цей параметр слід завжди використовувати, якщо образ диска або віртуальна
машина може працювати. Загалом, рекомендуємо використовувати його у
випадках, коли вам не потрібен доступ на запис до диска.
Зауважте, що цей параметр не стосується приготованих образів дисків,
створених за допомогою I<-N>. Крім того, це не стосується команд, подібних
до C<add> — вам слід вказати параметр C<readonly:true> явним чином, якщо вам
це потрібно.
Див. також L</ВІДКРИТТЯ ДИСКІВ ДЛЯ ЧИТАННЯ ТА ЗАПИСУ> нижче.
=item B<--selinux>
Цей параметр призначено для забезпечення зворотної сумісності, його
використання не матиме жодних наслідків.
=item B<-v>
=item B<--verbose>
Увімкнути виведення дуже докладних повідомлень. Корисно, якщо ви намагаєтеся
усунути якусь ваду.
=item B<-V>
=item B<--version>
Вивести дані щодо версії guestfish / libguestfs і завершити роботу.
=item B<-w>
=item B<--rw>
Змінює дію параметрів I<-a>, I<-d> і I<-m> таким чином, що диски додаються і
монтуються у режимі читання і запису.
Див. L</ВІДКРИТТЯ ДИСКІВ ДЛЯ ЧИТАННЯ ТА ЗАПИСУ> нижче.
=item B<-x>
Виводити усі команди перед виконанням.
=back
=head1 КОМАНДИ У КОМАНДНОМУ РЯДКУ
Усі додаткові аргументи (не пов’язані із параметрами команди) вважатимуться
командами, які слід виконати.
Команди, які слід виконати, слід відокремлювати двокрапками (C<:>), де
двокрапка є окремим параметром. Отже:
guestfish команда [аргументи...] : команда [аргументи...] : команда [аргументи...] ...
Якщо додаткових аргументів не буде, ми увійдемо до оболонки, інтерактивної
із запитом щодо команди (якщо вхідні дані надходять з термінала) або
неінтерактивної.
Якщо у режимі командного рядка, так і у режимі неінтерактивної командної
оболонки, перша ж команда, яка призводить до помилки, має наслідком вихід із
командної оболонки. У інтерактивному режимі (із запитом щодо команди), якщо
стається помилка команди, ви можете продовжити вводити команди.
Зауважте, що аргументи команд вважатимуться параметрами guestfish, якщо вони
починаються з дефіса (C<->). Ви завжди можете відокремити параметри
guestfish і решту команд (із їхніми аргументами) за допомогою подвійного
дефіса (C<-->). Приклад:
guestfish -- disk_create overlay.qcow2 qcow2 -1 backingfile:image.img
=head1 КОРИСТУВАННЯ launch (АБО run)
Як і для L<guestfs(3)>, вам слід спочатку налаштувати вашу гостьову систему
додаванням дисків, потім запустити її, потім змонтувати потрібні диски і,
нарешті, виконати з нею якісь дії або віддати команди. Отже, звичний порядок
дій є таким:
=over 4
=item *
add або -a/--add
=item *
launch (або run)
=item *
mount або -m/--mount
=item *
будь-які інші команди
=back
C<run> є синонімом C<launch>. Вам слід виконати C<launch> (або C<run>) для
вашої гостьової системи, перш ніж щось у ній монтувати або віддавати якісь
інші команди.
Єдиним виключенням є команди з параметрами I<-i>, I<-m>, I<--mount>, I<-N>
або I<--new>. Якщо вказано таку команду, C<run> виконується автоматично,
просто тому, що guestfish без цієї команди не зможе виконати потрібної вам
дії.
=head1 ВІДКРИТТЯ ДИСКІВ ДЛЯ ЧИТАННЯ ТА ЗАПИСУ
Параметри I<--ro> та I<--rw> guestfish, L<guestmount(1)> і L<virt-rescue(1)>
стосуються інших параметрів командного рядка I<-a>, I<-c>, I<-d>, I<-i> і
I<-m> щодо відкриття у режимі лише читання чи режимі із записом.
У libguestfs E<le> 1.10, guestfish, guestmount та virt-rescue типово
відкривали вказані у командному рядку образи дисків на запис. Щоб відкрити
образ диска лише для читання, слід було вказати I<-a образ --ro>.
Це означає ось що: якщо ви випадково відкрили запущений образ диска
віртуальної машини для запису, вміст диска буде незворотним чином
пошкоджено.
У майбутніх версіях libguestfs ми маємо намір змінити типову
поведінку. Образи дисків відкриватимуться у режимі лише читання. Вам слід
вказати I<guestfish --rw>, I<guestmount --rw>, I<virt-rescue --rw> або
змінити файл налаштувань, щоб отримати доступ до запису на образи дисків,
вказані за допомогою інших параметрів командного рядка.
Ця версія guestfish, guestmount і virt-rescue має параметр I<--rw>, який
нічого не робить (відповідна поведінка вже є типовою). Втім, наполегливо
рекомендуємо вам використовувати цей параметр для позначення того, що вам
потрібен доступ до запису, і готувати ваші скрипти до дня, коли для
отримання доступу до запису вам знадобиться цей параметр.
B<Зауваження:> це I<не> стосується команд, подібних L</add> і L</mount>, або
усіх інших програм libguestfs поза guestfish і guestmount.
=head1 ЛАПКИ
Звичайні параметри можна ізолювати одинарними або подвійними
лапками. Приклад:
add "файл із пробілами у назві.img"
rm '/назва файла'
rm '/"'
Деяким командам потрібно передавати список рядків. Для передавання таких
списків слід користуватися записами, відокремлених пробілами рядків, взятих
у лапки. Рядки, які містять пробіли, слід передавати у одинарних лапках. Сам
символ одинарної лапки слід екранувати символом зворотної похилої риски.
vgcreate VG "/dev/sda1 /dev/sdb1"
command "/bin/echo 'щось десь'"
command "/bin/echo \'щось\'"
=head2 ЕКРАНОВАНІ ПОСЛІДОВНОСТІ У АРГУМЕНТАХ У ПОДВІЙНИХ ЛАПКАХ
У аргументах, які взято у подвійні лапки, (і лише у них) використовуйте
символ зворотної похилої риски для вставляння спеціальних символів:
=over 4
=item C<\a>
Символ гудка (дзвінка).
=item C<\b>
Символ «зворотній хід»
=item C<\f>
Символ заповнення форми.
=item C<\n>
Символ нового рядка.
=item C<\r>
Символ повернення каретки.
=item C<\t>
Символ горизонтальної табуляції
=item C<\v>
Символ вертикальної табуляції.
=item C<\">
Сам символ подвійних лапок.
=item C<\ooo>
Символ із вісімковим значенням I<ooo>. Має бути вказано точно три вісімкові
цифри (на відміну від C).
=item C<\xhh>
Символ із шістнадцятковим значенням I<hh>. Має бути вказано точно дві
шістнадцяткові цифри.
У поточній реалізації не можна використовувати у рядках C<\000> і C<\x00>.
=item C<\\>
Сам символ зворотної похилої риски.
=back
=head1 НЕОБОВ'ЯЗКОВІ АРГУМЕНТИ
Деяким командам передаються необов'язкові аргументи. Ці аргументи вказано у
цій документації як C<[назва_аргументу:..]>. Ви можете скористатися ними
так, як у цих прикладах:
add назва_файла
add назва_файла readonly:true
add назва_файла format:qcow2 readonly:false
Кожен необов'язковий аргумент можна вказувати лише один раз. Усі
необов'язкові аргументи має бути вказано після обов'язкових.
=head1 ЧИСЛА
Цей розділ стосується усіх команд, яким як параметри передаються цілі числа.
=head2 СУФІКС РОЗМІРУ
Якщо команда отримує параметр, який вимірюється у байтах, ви можете
скористатися одним із вказаних нижче суфіксів, щоб вказати кілобайти,
мегабайти або інші обсяги даних:
=over 4
=item B<k>, B<K> або B<KiB>
Розмір у кілобайтах (у одному кілобайті 1024 байтів).
=item B<KB>
Розмір у одиницях СІ: 1000 байтів.
=item B<M> або B<MiB>
Розмір у мегабайтах (у одному мегабайті 1048576 байтів).
=item B<MB>
Розмір у одиницях СІ: 1000000 байтів.
=item B<G> або B<GiB>
Розмір у гігабайтах (з множником 2**30).
=item B<GB>
Розмір у одиницях СІ: 10**9 байтів.
=item B<T> або B<TiB>
Розмір у терабайтах (з множником 2**40).
=item B<TB>
Розмір у одиницях СІ: 10**12 байтів.
=item B<P> або B<PiB>
Розмір у петабайтах (у одному петабайті 2**50 байтів).
=item B<PB>
Розмір у одиницях СІ: 10**15 байтів.
=item B<E> або B<EiB>
Розмір у ексабайтах (у одному ексабайті 2**60 байтів).
=item B<EB>
Розмір у одиницях СІ: 10**18 байтів.
=item B<Z> або B<ZiB>
Розмір у зетабайтах (у одному зетабайті 2**70 байтів).
=item B<ZB>
Розмір у одиницях СІ: 10**21 байтів.
=item B<Y> або B<YiB>
Розмір у йотабайтах (у одному йотабайті 2**80 байтів).
=item B<YB>
Розмір у одиницях СІ: 10**24 байтів.
=back
Приклад:
truncate-size /файл 1G
обріже файл до об'єму у 1 ГБ.
Будьте обережні, оскільки деяким командам передаються розміри у кілобайтах
або мегабайтах (наприклад, параметр L</memsize> уже вказується у
мегабайтах). Додавання суфікса у таких командах може призвести до небажаних
наслідків.
=head2 ВІСІМКОВІ І ШІСТНАДЦЯТКОВІ ЧИСЛА
Щоб вказати основу числення, скористайтеся форматом C: C<0> як префіксом для
вісімкових чисел або C<0x> як префіксом для шістнадцяткових чисел. Приклад:
1234 десяткове число 1234
02322 вісімкове число, яке дорівнює десятковому числу 1234
0x4d2 шістнадцяткове число, яке дорівнює десятковому числу 1234
Якщо ви користуєтеся командою C<chmod>, вам майже завжди зручно буде
вказувати режим доступу у форматі вісімкового числа, отже вам слід додавати
до числа префікс C<0> (не так, як у програмі L<chmod(1)> UNIX):
chmod 0777 /public # ПРАВИЛЬНО
chmod 777 /public # НЕПРАВИЛЬНО! Вказано десятковий режим 777 = вісімковому 01411.
Команди, які повертають числові дані, зазвичай, виводять їх у десятковій
формі, але деякі команди виводять числа у інших основах числення (наприклад,
C<umask> виводить режим доступу у вісімковій формі із префіксом C<0>).
=head1 СИМВОЛИ-ЗАМІННИКИ І ЗАМІНИ
Ні у guestfish, ні у базовому програмному інтерфейсі guestfs типово не
виконується розгортання символів-замінників (заміни). Отже, наприклад,
вказана нижче команда не буде виконана так, як ви б того сподівалися:
rm-rf /home/*
Якщо у вашій системі немає каталогу, який називається буквально F</home/*>,
у результаті виконання вказаної вище команди ви побачите повідомлення про
помилку.
Для виконання розгортання символів-замінників скористайтеся командою C<glob>
glob rm-rf /home/*
виконує C<rm-rf> для кожного відповідного каталогу (тобто потенційно
запустити команду багато разів). Еквівалент такого:
rm-rf /home/jim
rm-rf /home/joe
rm-rf /home/mary
C<glob> працює лише для простих шляхів у гостьовій системі, а не для назв
пристроїв.
Якщо параметрів декілька, кожен з яких містить символ-замінник, glob виконає
рекурсивне розгортання.
=head1 КОМЕНТАРІ
Будь-який рядок, який розпочинається з символу I<#>, вважатиметься
коментарем і ігноруватиметься. Якщо потрібно, перед I<#> може бути
використано пробіл, але цього B<не можна> робити для команд. Приклад:
# коментар
# коментар
foo # НЕ коментар
Крім того, ігноруються порожні рядки.
=head1 ЛОКАЛЬНИЙ ЗАПУСК КОМАНД
Будь-який рядок, який починається з символу I<!>, вважається командою,
надісланою до локальної командної оболонки (F</bin/sh> або будь-якої іншої,
яку використовує L<system(3)>). Приклад:
!mkdir local
tgz-out /remote local/remote-data.tar.gz
створить каталог C<local> у основній системі, а потім експортує вміст
F</remote> на змонтованій файловій системі до F<local/remote-data.tar.gz>.
(Див. C<tgz-out>.)
Щоб змінити локальний каталог, скористайтеся командою C<lcd>. C<!cd> не
спрацює через спосіб, у який працюють підпроцеси у Unix.
=head2 ЛОКАЛЬНІ КОМАНДИ ІЗ ВБУДОВАНИМ ВИКОНАННЯМ
Якщо рядок починається із I<E<lt>!>, виконується команда оболонки (як для
I<!>), але далі усі виведені дані (stdout) команди оболонки обробляються і
виконуються як команди guestfish.
Таким чином, ви можете використовувати скрипт командної оболонки для
побудови довільних команд guestfish, виведення яких далі буде оброблено
guestfish.
Наприклад, створення послідовності файлів (наприклад, від F</foo.1> до
F</foo.100>) за допомогою самих лише команд guestfish є марудною
справою. Втім, зробити це доволі просто, якщо ми скористаємося скриптом
оболонки для створення команд guestfish:
<! for n in `seq 1 100`; do echo write /foo.$n $n; done
або з назвами, які подібні до F</foo.001>:
<! for n in `seq 1 100`; do printf "write /foo.%03d %d\n" $n $n; done
При інтерактивному використанні guestfish може бути корисним спочатку
запустити скрипт оболонки (тобто вилучити початковий символ C<E<lt>>, щоб
зробити команду простою локальною командою із I<!>), подивитися, які команди
guestfish вона запустить, а потім, якщо усе працює як слід, додати символ
C<E<lt>>, щоб справді запустити команди guestfish.
=head1 КАНАЛИ
Скористайтеся конструкцією C<команда E<lt>пробілE<gt> | команда>, щоб
передати каналом дані, виведені першою командою (командою guestfish) другій
команді (будь-якій команді основної системи). Приклад:
cat /etc/passwd | awk -F: '$3 == 0 { print }'
(де C<cat> є командою cat guestfish, а C<awk> є програмою awk основної
системи). Наведена вище команда має вивести список усіх облікових записів у
файловій системі гостьової операційної системи, у яких UID 0, тобто
адміністративних облікових записів, які містять входи для сторонніх
осіб. Інші приклади:
hexdump /bin/ls | head
list-devices | tail -1
tgz-out / - | tar ztf -
Пробіл перед символом «|» є обов'язковим, а пробіл після цього символу —
необов'язковим. Усе після символу «|» просто передається командній оболонці
основної системи, отже, там можуть міститися переспрямування,
символи-замінники і усе, що має сенс для інтерпретатора командної оболонки у
основній системі.
Якщо потрібно використати буквальний аргумент із символом «|», його
доведеться взяти у лапки. Ось так:
echo "|"
=head1 ДОМАШНІ КАТАЛОГИ
Якщо параметр починається із символу C<~>, тильду буде розгорнуто до назви
домашнього каталогу (C<~> для домашнього каталогу поточного користувача або
C<~user> для іншого користувача).
Зауважте, що розгортання домашнього каталогу виконується для користувачів,
які відомі I<у основній системі>, а не у гостьовій файловій системі.
Якщо потрібно використати буквальний аргумент із символом тильди, його
доведеться взяти у лапки. Ось так:
echo "~"
=head1 ЗАШИФРОВАНІ ДИСКИ
Libguestfs has some support for Linux guests encrypted according to the
Linux Unified Key Setup (LUKS) standard, which includes nearly all whole
disk encryption systems used by modern Linux guests, and Windows BitLocker.
Знайдіть шифровані блокові пристрої та розділи за допомогою L</vfs-type>:
><fs> vfs-type /dev/sda2
crypto_LUKS
або:
><fs> vfs-type /dev/sda2
BitLocker
Then open those devices using L</cryptsetup-open>. This creates a
device-mapper device called F</dev/mapper/name>.
><fs> cryptsetup-open /dev/sda2 name
Enter key or passphrase ("key"): <enter the passphrase>
For Linux guests you have to tell LVM to scan for volume groups on the newly
created mapper device:
vgscan
vg-activate-all true
The filesystems or logical volumes can now be mounted in the usual way.
Before closing an encrypted device you must unmount any logical volumes on
it and deactivate the volume groups by calling C<vg-activate false VG> on
each one. Then you can close the mapper device:
vg-activate false /dev/VG
cryptsetup-close /dev/mapper/name
=head1 ШЛЯХИ У WINDOWS
Якщо до шляху додано префікс C<win:>, ви зможете скористатися літерами
дисків і шляхами у стилі Windows (з певними обмеженнями). Наведені нижче
команди є еквівалентними:
file /WINDOWS/system32/config/system.LOG
file win:\windows\system32\config\system.log
file WIN:C:\Windows\SYSTEM32\CONFIG\SYSTEM.LOG
Параметр перезаписується «за лаштунками» шляхом пошуку місця, до якого
змонтовано диск, дописування його перед шляхом, заміною усіх символів
зворотної похилої риски на символ прямої похилої риски, а потім обробкою
результату за допомогою L</case-sensitive-path>. Наприклад, якщо диск E:
було змонтовано до F</e>, параметр може бути перезаписано так:
win:e:\foo\bar => /e/FOO/bar
Це працює лише у позиціях аргументів, де має бути вказано шлях.
=head1 ВИВАНТАЖЕННЯ ТА ОТРИМАННЯ ФАЙЛІВ
Для команд, які подібні до C<upload>, C<download>, C<tar-in>, C<tar-out>, та
інших, які вивантажують дані до образу або отримують дані до локального
файла, ви можете скористатися спеціальною назвою файла C<->, яка означає «зі
stdin» або «до stdout». Приклад:
upload - /foo
читає дані з stdin і створює на їхній основі файл F</foo> у образі диска, а
така команда:
tar-out /etc - | tar tf -
записує архів tar до stdout, а потім передає каналом дані до зовнішньої
програми «tar» (див. L</КАНАЛИ>).
Якщо використовується C<-> для читання зі stdin, дані читатимуться до кінця
stdin. Ви також можете скористатися спеціальним синтаксисом «heredoc» для
читання до певної довільної позначки кінця:
upload -<<END /foo
рядок 1
рядок 2
рядок 3
END
Замість C<END> можна скористатися будь-яким іншим рядком символів. Позначка
кінця має бути окремим рядком без будь-яких символів перед ним або після
нього (навіть без пробілів).
Зауважте, що синтаксис C<-E<lt>E<lt>> застосовується лише для параметрів,
які використовуються для вивантаження локальних файлів (так званих
параметрів «FileIn» у генераторі).
=head1 ВИХІД ПРИ ПОМИЛЦІ
Типово, у інтерактивному режимі (тобто при отримання команд від людини за
допомогою tty) guestfish ігноруватиме будь-які помилки і завершуватиме
роботу при першій же помилці у неінтерактивному режимі (скрипти, команди із
командного рядка).
Якщо ви додасте до команди префікс I<->, ця команда не спричинятиме
завершення роботи guestfish, навіть якщо ця (одна) команда поверне
повідомлення про помилку.
=head1 ВІДДАЛЕНЕ КЕРУВАННЯ GUESTFISH КРІЗЬ СОКЕТ
Guestfish можна віддалено керувати за допомогою сокета. Це, зокрема, корисно
у скриптах командної оболонки, де вам потрібно внести декілька різних змін
до файлової системи, але ви не хочете отримати пенальті через запуск процесу
guestfish для кожної окремо взятої зміни.
Запустіть процес сервера guestfish такою командою:
eval "`guestfish --listen`"
а потім надішліть команди ось так:
guestfish --remote команда [...]
Щоб наказати серверу завершити роботу (вийти), надішліть йому команду
виходу:
guestfish --remote exit
Зауважте, що за звичних умов сервер завершує роботу, якщо під час виконання
команди станеться помилка. Ви можете змінити цю поведінку у звичний
спосіб. Див. розділ L</ВИХІД ПРИ ПОМИЛЦІ>.
=head2 КЕРУВАННЯ ДЕКІЛЬКОМА ПРОЦЕСАМИ GUESTFISH
Інструкція C<eval> встановлює змінну середовища C<$GUESTFISH_PID>, саме так
команда із параметром I<--remote> визначає, куди слід надсилати команди. Ви
можете користуватися декількома процесами guestfish, які очікуватимуть на
команди, ось так:
eval "`guestfish --listen`"
pid1=$GUESTFISH_PID
eval "`guestfish --listen`"
pid2=$GUESTFISH_PID
...
guestfish --remote=$pid1 cmd
guestfish --remote=$pid2 cmd
=head2 ВІДДАЛЕНЕ КЕРУВАННЯ І CSH
Якщо ви користуєтеся csh-подібними оболонками (csh, tcsh тощо), вам слід
додати параметр I<--csh>:
eval "`guestfish --listen --csh`"
=head2 ПОДРОБИЦІ ЩОДО ВІДДАЛЕНОГО КЕРУВАННЯ
Віддалене керування відбувається за допомогою сокетів домену Unix, які мають
назви F</tmp/.guestfish-$UID/socket-$PID>, де C<$UID> — ідентифікатор
ефективного користувача для процесу, а C<$PID> — ідентифікатор процесу
сервера.
Версії клієнта і сервера guestfish мають бути абсолютно однаковими.
Застарілі версії guestfish були вразливими до CVE-2013-4419
(див. L<guestfs(3)/CVE-2013-4419>). Вразливість виправлено у поточній
версії.
=head2 НАДІЙНЕ ВИКОРИСТАННЯ ВІДДАЛЕНОГО КЕРУВАННЯ У СКРИПТАХ ОБОЛОНКИ
У Bash ви можете використовувати наведений нижче код, який створює екземпляр
guestfish, правильно використовує лапки у командному рядку, обробляє помилки
при запуску та чистить дані guestfish, коли скрипт завершує роботу:
#!/bin/bash -
set -e
guestfish[0]="guestfish"
guestfish[1]="--listen"
guestfish[2]="--ro"
guestfish[3]="-a"
guestfish[4]="disk.img"
GUESTFISH_PID=
eval $("${guestfish[@]}")
if [ -z "$GUESTFISH_PID" ]; then
echo "error: guestfish didn't start up, see error messages above"
exit 1
fi
cleanup_guestfish ()
{
guestfish --remote -- exit >/dev/null 2>&1 ||:
}
trap cleanup_guestfish EXIT ERR
guestfish --remote -- run
# ...
=head2 ВІДДАЛЕНЕ КЕРУВАННЯ НЕ ПРАЦЮЄ ІЗ ПАРАМЕТРАМИ, ПОДІБНИМИ ДО I<-a>
Параметри, які подібні до I<-a>, I<--add>, I<-N>, I<--new>, не можуть
належним чином працювати із підтримкою віддаленого керування. Вони
обробляються локально і не надсилаються до віддаленого екземпляра
guestfish. Зокрема, ось таке не працюватиме так, як ви б того сподівалися:
guestfish --remote --add диск.img
Не використовуйте ці параметри. Замість них, використовуйте еквівалентні
команди. Приклад:
guestfish --remote add-drive диск.img
або:
guestfish --remote
><fs> add диск.img
=head2 ЗАВИСАННЯ ЗАПУЩЕНОЇ ЗА ДОПОМОГОЮ ВІДДАЛЕНОГО КЕРУВАННЯ КОМАНДИ
Використання команди C<run> (або C<launch>) віддалено у контексті
підстановки команд призводить до повисання. Тобто, не слід робити так
(зверніть увагу на зворотні лапки):
a=`guestfish --remote run`
Оскільки команда C<run> нічого не виводить до stdout, це все одно не має
сенсу. Докладніший опис наведено тут:
L<https://bugzilla.redhat.com/show_bug.cgi?id=592910>.
=head1 ОБРАЗИ ПРИГОТОВАНИХ ДИСКІВ
Скористайтеся параметром I<-N [назва_файла=]тип> або I<--new
[назва_файла=]тип> для вибору одного з набору попередньо форматованих
образів дисків, які може створити guestfish, щоб заощадити час на введення
назв вручну. Це, зокрема, корисно для тестування. Цей параметр
використовується замість параметра I<-a> і, як I<-a>, його можна
використовувати декілька разів (і поєднувати з I<-a>).
Новий диск буде названо F<test1.img> для першого I<-N>, F<test2.img> — для
другого, тощо. Наявні файли у поточному каталозі буде I<перезаписано>. Ви
можете скористатися іншою назвою файла, якщо вкажете рядок C<назва_файла=>
до типу (див. наведені нижче приклади).
Тип коротко описує як слід визначати розмір диска, ділити його на розділи,
як створювати файлові системи та як додавати дані. Крім того, за типом можна
вказати додаткові параметри, відокремлені символами C<:>
(двокрапкою). Наприклад, I<-N fs> створює типовий диск у 1ГБ із розрідженим
розподілом, який містить єдиний розділ, який форматовано з використанням
ext2. I<-N fs:ext4:2G> робить те саме, але для файлової системи ext4 на
диску у 2 ГБ.
Зауважте, що приготовану файлову систему не змонтовано. Вам, зазвичай, слід
скористатися командою C<mount /dev/sda1 /> або додати параметр I<-m
/dev/sda1>.
Якщо вказано якісь параметри I<-N> або I<--new>, буде автоматично запущено
базову систему libguestfs.
=head2 ПРИКЛАДИ
Створити диск у 1 ГБ, що міститиме розділ у форматі ext4, із назвою
F<test1.img> у поточному каталозі:
guestfish -N fs:ext4
Створити диск у 32 МБ із форматованим у VFAT розділом і змонтувати його:
guestfish -N fs:vfat:32M -m /dev/sda1
Створення порожнього диска розміром у 200 МБ:
guestfish -N disk:200M
Створити порожній диск у 200 МБ із назвою F<blankdisk.img> (замість
F<test1.img>):
guestfish -N blankdisk.img=disk:200M
__INCLUDE:guestfish-prepopts.pod__
=head1 ДОДАВАННЯ ВІДДАЛЕНОГО СХОВИЩА
I<Документацію рівня програмного інтерфейсу щодо цього питання наведено у
розділах L<guestfs(3)/guestfs_add_drive_opts> і L<guestfs(3)/ВІДДАЛЕНЕ
СХОВИЩЕ>>.
У командному рядку ви можете скористатися параметром I<-a> для додавання
мережевих блокових пристроїв за допомогою формату у стилі адрес. Приклад:
guestfish -a ssh://root@example.com/диск.img
Адреси I<не можна> використовувати разом із командою L</add>. Еквівалентною
командою у безпосередньому використанні програмному інтерфейсі є:
><fs> add /disk.img protocol:ssh server:tcp:example.com username:root
Можливі формати I<-a адреса> описано нижче.
=head2 B<-a disk.img>
=head2 B<-a file:///шлях/на/диску.img>
Додати локальний образ диска (або пристрою) із назвою F<disk.img>.
=head2 B<-a ftp://[user@]example.com[:port]/disk.img>
=head2 B<-a ftps://[user@]example.com[:порт]/disk.img>
=head2 B<-a http://[user@]example.com[:порт]/disk.img>
=head2 B<-a https://[user@]example.com[:порт]/disk.img>
=head2 B<-a tftp://[user@]example.com[:порт]/disk.img>
Додати диск на віддаленому сервері FTP, HTTP або TFTP.
Еквівалентною командою із програмного інтерфейсу є така:
><fs> add /disk.img protocol:(ftp|...) server:tcp:example.com username:root
=head2 B<-a gluster://example.com[:порт]/назва_тому/образ>
Додати образ диска, розташований у сховищі даних GlusterFS.
Сервером є комп'ютер, на якому запущено C<glusterd>, ним може бути
C<localhost>.
Еквівалентною командою із програмного інтерфейсу є така:
><fs> add volname/image protocol:gluster server:tcp:example.com
=head2 B<-a iscsi://example.com[:порт]/назваt-iqn-призначення[/lun]>
Додати диск з сервера iSCSI.
Еквівалентною командою із програмного інтерфейсу є така:
><fs> add target-iqn-name/lun protocol:iscsi server:tcp:example.com
=head2 B<-a nbd://example.com[:порт]>
=head2 B<-a nbd://example.com[:порт]/назва_для_експортування>
=head2 B<-a nbd://?socket=/сокет>
=head2 B<-a nbd:///exportname?socket=/socket>
Додати образ диска, розташований у сховищі даних Network Block Device (nbd).
The I<exportname> part of the URI specifies an NBD export name, but is
usually left empty.
Необов'язковим параметром I<?socket> може бути використано для визначення
сокета домену Unix, крізь який можна обмінюватися даними із сервером
NBD. Зауважте, що не можна поєднувати назву сервера (тобто TCP/IP) і шлях до
сокета.
Еквівалентною командою із програмного інтерфейсу є така (без назви
експортування):
><fs> add "" protocol:nbd server:[tcp:example.com|unix:/сокет]
=head2 B<-a rbd:///буфер/диск>
=head2 B<-a rbd://example.com[:порт]/буфер/диск>
Додати образ диска, розташований на томі сховища Ceph (RBD/librbd).
Хоча у libguestfs та Ceph передбачено підтримку декількох серверів, при
використанні цього синтаксису адреси можна вказати лише один сервер.
Еквівалентною командою із програмного інтерфейсу є така:
><fs> add pool/disk protocol:rbd server:tcp:example.com:порт
=head2 B<-a sheepdog://[example.com[:порт]]/том/образ>
Додати образ диска, розташований на томі Sheepdog.
Назва сервера є необов'язковою. Хоча у libguestfs та Sheepdog передбачено
підтримку декількох серверів, при використанні цього синтаксису адреси можна
вказати не більше одного сервера.
Еквівалентною командою із програмного інтерфейсу є така:
><fs> add volume protocol:sheepdog [server:tcp:example.com]
=head2 B<-a ssh://[користувач@]example.com[:порт]/диск.img>
Додати образ диска, розташований на віддаленому сервері, доступ до якого
здійснюється за допомогою протоколу Secure Shell (ssh) SFTP. Підтримку SFTP
передбачено від початку в усіх основних серверах SSH.
Еквівалентною командою із програмного інтерфейсу є така:
><fs> add /disk protocol:ssh server:tcp:example.com [username:user]
Зауважте, що для адрес використовується синтаксис L<RFC
3986|https://tools.ietf.org/html/rfc3986>: зокрема, існують обмеження на
дозволені символи для різних компонентів адреси. Деякі символи, зокрема
C<:>, C<@> і C</> B<має> бути закодовано з використанням символу відсотків:
$ guestfish -a ssh://користувач:пароль%40word@example.com/диск.img
У цьому випадку паролем є C<pass@word>.
=head1 СМУЖКИ ПОСТУПУ
Деякі (не усі) команди, які виконуються довго, надсилають сповіщення щодо
поступу під час виконання. Guestfish перетворює такі повідомлення на смужки
поступу.
Якщо виконання команди, де передбачено смужки поступу, триває понад 2
секунди і увімкнено смужки поступу, ви побачите таку смужку під рядком
команди:
><fs> copy-size /великий-файл /інший-файл 2048M
/ 10% [#####-----------------------------------------] 00:30
Символ ліворуч прокручуватиметься у відповідь на кожне отримане сповіщення
щодо поступу від модуля обробки. Це доволі добра гарантія того, що команда
«щось робить», навіть якщо смужка поступу не рухається, оскільки команда
здатна надсилати сповіщення щодо поступу. Коли на смужці поступу буде
досягнуто рівня 100% і команда завершить роботу, символ автоматично зникне.
Якщо guestfish використовується як інтерактивна командна оболонка, смужки
поступу буде типово увімкнено. Ви можете увімкнути їх навіть у
неінтерактивному режимі за допомогою параметра I<--progress-bars> або
повністю вимкнути їх за допомогою параметра I<--no-progress-bars>.
=head1 ЗАПИТ
Ви можете змінити або додати кольори до типового запиту щодо команди
(C<E<gt>E<lt>fsE<gt>>), встановивши відповідне значення змінної середовища
C<GUESTFISH_PS1>. Другий рядок (C<GUESTFISH_OUTPUT>) буде виведено після
введення команди і перед її виведенням. Він надає вам змогу керувати
розфарбовуванням виведених даних. Третій рядок (C<GUESTFISH_INIT>)
виводиться перед повідомленням вітання і надає вам змогу розфарбувати це
повідомлення. Четвертий рядок (C<GUESTFISH_RESTORE>) виводиться перед
завершенням роботи guestfish.
Простий запит можна встановити за допомогою визначення для C<GUESTFISH_PS1>
якогось альтернативного рядка:
$ GUESTFISH_PS1='(введіть команду) '
$ export GUESTFISH_PS1
$ guestfish
[...]
(введіть команду) ▂
Ви також можете використовувати послідовності спеціальних символів, які
описано у наведеній нижче таблиці:
=over 4
=item \\
Сам символ зворотної похилої риски.
=item \[
=item \]
(Ці послідовності має бути використано лише у C<GUESTFISH_PS1>.)
Розташовуйте непридатні до виведення символи (наприклад, коди термінала для
кольорів) між C<\[...\]>. Це вкаже бібліотеці L<readline(3)>, що їй слід
вважати таку підпослідовність символом нульової ширини. Це уможливить
повторний показ, редагування та інші операції.
=item \a
Символ гудка.
=item \e
Символ ESC ASCII.
=item \n
Символ розриву рядка.
=item \r
Повернення каретки.
=item \NNN
Символ ASCII, кодом якого є вісімкове значення NNN.
=item \xNN
Символ ASCII, кодом якого є шістнадцяткове значення NN.
=back
=head2 ПРИКЛАДИ ЗАПИТІВ
Зауважте, що для користування цими прикладами вам знадобиться термінал, у
якому передбачено коди екранування ANSI.
=over 4
=item *
GUESTFISH_PS1='\[\e[1;30m\]><fs>\[\e[0;30m\] '
Жирна чорна версія звичайного запиту.
=item *
GUESTFISH_PS1='\[\e[1;32m\]><fs>\[\e[0;31m\] '
GUESTFISH_OUTPUT='\e[0m'
GUESTFISH_RESTORE="$GUESTFISH_OUTPUT"
GUESTFISH_INIT='\e[1;34m'
Синій текст вітання, зелений запит, червоні команди, чорне виведення команд.
=back
=head1 WINDOWS 8
«Швидкий запуск» Windows 8 може заважати монтуванню у guestfish розділів
NTFS. Див. L<guestfs(3)/ПРИСИПЛЯННЯ WINDOWS ТА ШВИДКИЙ ЗАПУСК WINDOWS 8>.
=head1 КОМАНДИ GUESTFISH
Команди у цьому розділі є допоміжними командами guestfish. Інакше кажучи,
вони не є частиною програмного інтерфейсу L<guestfs(3)>.
=head2 help
help
help команда
help -l|--list
Без параметра показує загальну довідкову інформацію.
Якщо вказано із параметром C<команда>, ця команда показує довідку щодо
заданої команди.
Якщо вказано параметр I<-l> або I<--list>, буде показано список усіх команд.
=head2 exit
=head2 quit
Завершує роботу guestfish. Ви також можете скористатися комбінацією клавіш
C<^D>.
__INCLUDE:guestfish-commands.pod__
=head1 КОМАНДИ
__INCLUDE:guestfish-actions.pod__
=head1 СТАН ВИХОДУ
guestfish повертає 0, якщо команди виконано без помилок, або 1, якщо сталася
помилка.
=head1 ЗМІННІ СЕРЕДОВИЩА
=over 4
=item РЕДАКТОР
Для редагування у команді C<edit> використовується редактор, вказаний за
допомогою змінної середовища C<$EDITOR>. Якщо значення цієї змінної не
встановлено, використовується C<vi>.
=item GUESTFISH_DISPLAY_IMAGE
Для показу зображень команда C<display> використовує програму, вказану за
допомогою змінної середовища C<$GUESTFISH_DISPLAY_IMAGE>. Якщо значення цієї
змінної не встановлено, буде використано L<display(1)>.
=item GUESTFISH_INIT
Виводиться під час запуску guestfish. Див. L</ЗАПИТ>.
=item GUESTFISH_OUTPUT
Виводиться перед виведенням даних guestfish. Див. L</ЗАПИТ>.
=item GUESTFISH_PID
Використовується разом із параметром I<--remote> для задання віддаленого
процесу guestfish для керування. Див. розділ L</ВІДДАЛЕНЕ КЕРУВАННЯ
GUESTFISH КРІЗЬ СОКЕТ>.
=item GUESTFISH_PS1
Встановити запит щодо команд. Див. L</ЗАПИТ>.
=item GUESTFISH_RESTORE
Виводиться перед виходом із guestfish. Див. L</ЗАПИТ>.
=item HEXEDITOR
Команда L</hexedit> використовує програму, вказану за допомогою змінної
середовища C<$HEXEDITOR>, як зовнішній шістнадцятковий редактор. Якщо
значення цієї змінної середовища не встановлено, використовується зовнішня
програма L<hexedit(1)>.
=item ДОМІВКА
Якщо програму зібрано із підтримкою GNU readline, можна використовувати
різноманітні файли у домашньому каталозі. Див. L</ФАЙЛИ>.
=item LIBGUESTFS_APPEND
Передати додаткові параметри ядру гостьової системи.
=item LIBGUESTFS_ATTACH_METHOD
Це старий спосіб визначити C<LIBGUESTFS_BACKEND>.
=item LIBGUESTFS_BACKEND
Вибрати типовий спосіб створення базової
системи. Див. L<guestfs(3)/guestfs_set_backend>.
=item LIBGUESTFS_BACKEND_SETTINGS
Список відокремлених двокрапками параметрів, специфічних для модуля
обробки. Див. L<guestfs(3)/МОДУЛЬ>, L<guestfs(3)/ПАРАМЕТРИ МОДУЛЯ>.
=item LIBGUESTFS_CACHEDIR
Місце, де зберігатиметься кеш базової системи libguestfs, якщо
використовується базова система supermin. Базова система кешується і спільно
використовується усіма дескрипторами, які мають однаковий ідентифікатор
ефективного користувача.
Якщо значення C<LIBGUESTFS_CACHEDIR> не встановлено, буде використано
C<TMPDIR>. Якщо не встановлено значення C<TMPDIR>, буде використано
F</var/tmp>.
Див. також L</LIBGUESTFS_TMPDIR>, L</set-cachedir>.
=item LIBGUESTFS_DEBUG
Встановіть значення C<LIBGUESTFS_DEBUG=1>, щоб увімкнути режим докладних
повідомлень. Ця змінна має той самий ефект, що і параметр B<-v>.
=item LIBGUESTFS_HV
Встановити типовий виконуваний файл гіпервізору (зазвичай, qemu), яким
користуватиметься libguestfs. Якщо не встановлено, буде використано qemu,
знайдений скриптом налаштовування під час збирання.
=item LIBGUESTFS_MEMSIZE
Встановлює обсяг пам'яті, який надається процесу qemu, у
мегабайтах. Приклад:
LIBGUESTFS_MEMSIZE=700
=item LIBGUESTFS_PATH
Встановити шлях, який guestfish використовує для пошуку ядра та
initrd.img. Див. обговорення шляхів у L<guestfs(3)>.
=item LIBGUESTFS_QEMU
Це застарілий спосіб встановлення C<LIBGUESTFS_HV>.
=item LIBGUESTFS_TMPDIR
Місце, де libguestfs зберігатиме тимчасові файли, які використовуються
кожним з дескрипторів.
Якщо значення C<LIBGUESTFS_TMPDIR> не встановлено, буде використано
C<TMPDIR>. Якщо не встановлено значення C<TMPDIR>, буде використано F</tmp>.
Див. також L</LIBGUESTFS_CACHEDIR>, L</set-tmpdir>.
=item LIBGUESTFS_TRACE
Встановіть значення C<LIBGUESTFS_TRACE=1>, щоб увімкнути трасування команд.
=item РОЗБИТТЯ НА СТОРІНКИ
Для редагування у команді C<more> використовується пейджер, вказаний за
допомогою змінної середовища C<$PAGER>. Якщо значення цієї змінної не
встановлено, використовується C<more>.
=item ШЛЯХ
Libguestfs можуть запускати деякі зовнішні програми і вважати, що для
C<$PATH> встановлено якесь правильне значення. Якщо використовується модуль
обробки libvirt, libvirt не працюватиме взагалі, якщо у C<$PATH> не
міститься шляху до qemu/KVM.
=item SUPERMIN_KERNEL
=item SUPERMIN_KERNEL_VERSION
=item SUPERMIN_MODULES
За допомогою цих трьох змінних середовища можна вибрати ядро, яке libguestfs
використовуватиме у базовій системі. Якщо не встановлено
C<$SUPERMIN_KERNEL>, буде вибрано найсвіжіше з ядер основної
системи. Докладніший опис вибору ядра можна знайти на сторінці підручника
щодо L<supermin(1)>.
=item ТИМЧАСОВИЙ КАТАЛОГ
Див. L</LIBGUESTFS_CACHEDIR>, L</LIBGUESTFS_TMPDIR>.
=item XDG_RUNTIME_DIR
Цей каталог є специфічним каталогом користувача, який призначено для
зберігання неважливих файлів під час роботи.
Якщо встановлено, використовується для зберігання тимчасових сокетів. Якщо
не встановлено, використовується F</tmp>.
Див. також L</get-sockdir>,
L<http://www.freedesktop.org/wiki/Specifications/basedir-spec/>.
=back
=head1 ФАЙЛИ
=over 4
=item $XDG_CONFIG_HOME/libguestfs/libguestfs-tools.conf
=item $HOME/.libguestfs-tools.rc
=item $XDG_CONFIG_DIRS/libguestfs/libguestfs-tools.conf
=item /etc/libguestfs-tools.conf
Цей файл налаштувань керує типовим режимом — лише читання чи читання і запис
(I<--ro> або I<--rw>).
Див. L<libguestfs-tools.conf(5)>.
=item $HOME/.guestfish
Якщо програму зібрано із підтримкою GNU readline, до цього файла
зберігатиметься журнал команд.
=item $HOME/.inputrc
=item /etc/inputrc
Якщо програму зібрано із підтримкою GNU readline, цими файлами можна
скористатися для налаштовування readline. Докладніший опис можна знайти на
сторінці підручника L<readline(3)/INITIALIZATION FILE>.
Для створення правил, які застосовуватимуться лише до guestfish,
скористайтеся таким:
$if guestfish
...
$endif
Серед змінних, які ви можете встановити у inputrc для внесення змін до
поведінки guestfish, такі:
=over 4
=item completion-ignore-case (типово: on)
Типово, guestfish ігноруватиме регістр символів під час автоматичного
доповнення шляхів на диску у відповідь на натискання клавіші
Tab. Скористайтеся таким:
set completion-ignore-case off
щоб наказати guestfish враховувати регістр символів.
=back
=item test1.img
=item test2.img (тощо)
При використанні параметра I<-N> або I<--new> приготований диск або файлову
систему буде створено у файлі F<test1.img> у поточному каталозі. Друге
використання I<-N> призведе до використання F<test2.img> тощо. Усі наявні
файли із такими самими назвами буде перезаписано. Ви можете скористатися
іншими назвами файлів за допомогою вказаного префікса C<filename=>.
=back
=head1 ТАКОЖ ПЕРЕГЛЯНЬТЕ
L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-alignment-scan(1)>,
L<virt-builder(1)>, L<virt-builder-repository(1)>, L<virt-cat(1)>,
L<virt-copy-in(1)>, L<virt-copy-out(1)>, L<virt-customize(1)>,
L<virt-df(1)>, L<virt-diff(1)>, L<virt-edit(1)>, L<virt-filesystems(1)>,
L<virt-inspector(1)>, L<virt-list-filesystems(1)>,
L<virt-list-partitions(1)>, L<virt-log(1)>, L<virt-ls(1)>,
L<virt-make-fs(1)>, L<virt-p2v(1)>, L<virt-rescue(1)>, L<virt-resize(1)>,
L<virt-sparsify(1)>, L<virt-sysprep(1)>, L<virt-tail(1)>, L<virt-tar(1)>,
L<virt-tar-in(1)>, L<virt-tar-out(1)>, L<virt-v2v(1)>, L<virt-win-reg(1)>,
L<libguestfs-tools.conf(5)>, L<display(1)>, L<hexedit(1)>, L<supermin(1)>.
=head1 АВТОРИ
Richard W.M. Jones (C<rjones at redhat dot com>)
=head1 АВТОРСЬКІ ПРАВА
Copyright (C) 2009-2020 Red Hat Inc.
|