Домен KVM не создание

Причина проста, cd - это builtin оболочки (и функция shell в некоторых оболочках), в то время как echo является и двоичным, и shell builtin:

$ type -a cd  
cd is a shell builtin
$ type -a echo 
echo is a shell builtin
echo is /bin/echo

sudo не может обрабатывать сборки оболочки, но может обрабатывать двоичные файлы в $ PATH . При использовании sudo echo в $ PATH обнаруживается /bin/echo , поэтому используется то, что sudo cd не может найти cd в $ PATH , следовательно, не удается.

-121--57666-

Он выполняется, поскольку по умолчанию предполагается, что исполняемый файл является сценарием/bin/sh. То есть, если вы не указали какую-либо конкретную оболочку - это # !/bin/sh.

Параметр//просто игнорируется в путях - можно считать, что имеет значение single '/'.

Поэтому вы можете считать, что у вас есть сценарий оболочки с первой строкой:

/usr/bin/env go run $0 $@ ; exit

Что делает эта строка? Он запускает «env» с параметрами «go run $0 $ @». there 'go' является командой, а 'run $0 $ @' являются аргументами и после этого выходит из сценария. $0 - это имя сценария. $ @ - исходные аргументы сценария. Итак, эта строка работает, который запускает этот скрипт с его аргументами

Есть довольно интересные детали, как указано в комментариях, что две косые черты определены реализация, и этот скрипт стал бы POSIX-правильным, если бы он указал три или более косые черты. Для получения подробной информации о том, как следует обрабатывать косые черты в трактах, см. http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html .

Обратите внимание, что существует еще одна ошибка в сценарии $ @ правильно использовать «$ @», потому что в противном случае, если какой-либо параметр содержит места, он будет разделен на множество параметров. Например, нельзя передать имя файла с местами, если не использовать «$ @»

Этот сценарий явно основан на идее, что «//» равен «/»

-121--7261-

Это не шебанг, это просто сценарий, который запускается оболочкой по умолчанию. Оболочка выполняет первую строку

//usr/bin/env go run $0 $@ ; exit 

, которая приводит к вызову go с именем этого файла, поэтому в результате этот файл запускается как сценарий go, а затем оболочка выходит без просмотра остальной части файла.

Но зачем начинать с // вместо просто / или правильного шебанга #! ?

Это связано с тем, что файл должен быть действительным сценарием перехода, или он будет жаловаться. В го символы // обозначают комментарий, поэтому го видит первую строку как комментарий и не пытается интерпретировать его. Символ # , однако, не обозначает комментарий, поэтому обычный шебанг приведет к ошибке, когда go интерпретирует файл.

Эта причина синтаксиса состоит только в том, чтобы построить файл, который является как сценарием оболочки, так и сценарием перехода без одного шага на другом.

0
29.08.2014, 06:16
1 ответ
[

] У меня была та же проблема - то же сообщение об ошибке. Я обнаружил, что ВМ продолжит создание, если я дам ей менее 4 гб оперативной памяти, [

] [
    ] [
  1. ][

    ], так что, например, 3 гб оперативной памяти ВМ начала установку[

    ][
  2. ] [
  3. ][

    ], процесс установки был ужасно медленным[

    ][
  4. ] [
  5. ][

    ] в []/var/log/libvirt/libvirtd.log[] Я увидел ошибки типа:[

    ] [
    ][]qemuSetupCgroupForVcpu:566 : Невозможно получить подсказки vcpus
    [][
    ][
  6. ] [
  7. ][

    ]Я не загрузил все модули ядра kvm:[

    ] [
    ][]kvm_intel 54285 0 
    квм 333172 1 квм_интел
    [][
    ] [

    ] Мне не хватало модуля "kvm_intel" из списка, который вы видите выше (выше уже корректный вывод). и, попробовав "modprobe kvm_intel", я получил ошибку[

    ][
  8. ] [
  9. ][

    ]Я перезагрузил машину, зашел в BIOS и, наконец, все исправил, включив "allow intel virtualization" в "on" (был выключен)[

    ][
  10. ] [
] [

]Я и не мечтал, что в BIOS отключена поддержка виртуализации, но . ... это была рабочая станция HP xw8400 5-летней давности [

] [

]btw во время создания у меня также возникла проблема с "permission denied" при попытке установить виртуальную машину на []*.img[] (raw). Сообщение было что-то вроде:[

] [
"warning kvm is not available"
] [

]Это была проблема SELinux, потому что я переключил стандартный пул VM хранилищ на индивидуальный путь (разные FS)[

] [
$ ls -alZ /var/lib/libvirt/
drwxr-xr-x. root root system_u:object_r:virt_image_t:s0 images

$ semanage fcontext -a -t virt_image_t "/data/VM_KVM/(/.*)?"

$ restorecon -R -v /data/VM_KVM/
] [

]исправил проблему SElinux.[

].
4
28.01.2020, 02:20

Теги

Похожие вопросы