Диапазон дефрагментации ioctl не поддерживаемый в этом ядре, попробуйте без любых опций

(Это отвечает на более раннюю версию вопроса, которая сильно отличалась из-за отсутствия одного символа. Вторая команда была fg && command4 & error_command5 && command6 изначально , и оказалось, что это действительно имелось в виду как fg && command4 && неверная_команда5 && command6 . Это отвечает на старый вопрос с помощью фоновой команды, см. другие ответы для нового варианта вопроса)


Команда, которая вы хотите отменить, запущен на переднем плане, и он также "связан" со следующей командой && . Если он хорошо себя ведет на ^ C и завершает работу с ненулевым статусом, все в порядке:

Чтобы упростить примеры, я разделю эту строку:

$ fg && command4 & wrong_command5 && command6

на эквивалентные строки:

$ fg && command4 & 
$ wrong_command5 && command6

Нам нужно выйти из программы переднего плана error_command5 , и это легко сделать с помощью ^ C .
Затем мы перечисляем фоновые задания, чтобы увидеть, какое из них мы хотим дождаться. Идентификатор задания используется со встроенной командой wait для ожидания завершения задания.
Мы используем wait в качестве начала списка, который запускает команду замены, а затем используемую ранее команду.

$ command1 && command2 && command3
Running command1 ...
Running command2 ...^Z
[1]+  Stopped
$ fg && command4 & 
$ wrong_command5 && command6
^C
$ jobs
[1]  - running    command3
[2]  + running    command4
$ wait %2 && right_command5 && command6

Если неправильная_команда5 плохо себя ведет при получении ^ C с клавиатуры, но для другого сигнала вы можете использовать kill вместо ^ C вот так:

$ fg && command4 & 
$ wrong_command5 && command6
[1] 14407
^Z
[2]  + 14408 suspended  wrong_command5
$ jobs
[1]  - running    command3
[2]  + running    command4
[3]    suspended  wrong_command5
$ kill %2
[2]  + 14408 terminated  wrong_command5
$ wait %2 && right_command5 && command6
1
13.01.2015, 10:08
2 ответа

У меня та же проблема. Я не уверен насчет причины, но мне удалось дефрагментировать и сжать, указав по одному подкаталогу за раз, например,

sudo btrfs filesystem defragment -r -clzo /var

Обратите внимание, что я делал это на работающей файловой системе. Кроме того, проблема вызвана опцией -r (будь то дефрагментация / или подкаталог)

.
1
27.01.2020, 23:51

У меня была похожая проблема со свежей установкой Ubuntu 15.04, и решением было то, что PATH, который вы даете, должен быть точкой монтирования тома BTRFS для дефрагментации.

Например, у меня есть sda3, смонтированный как @home на /home, и следующая команда не работает:

$ sudo btrfs файловая система дефрагмента -r -clzo $HOME ОШИБКА: диапазон дефрагментации ioctl не поддерживается в этом ядре, пожалуйста, попробуйте без каких-либо опций.

однако, следующая работа

sudo btrfs файловая система defragment -r -clzo /home

0
27.01.2020, 23:51

Теги

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