Ошибка нуля DD :Нет свободного места на устройстве

Что я сделал, так это отключил диспетчер отображения в терминале, (предполагая, что вы используете Gnome правильно):

systemctl disable gdm.service
reboot 

У меня это сработало, а если нет, попробуйте также остановить процесс

systemctl stop gdm.service

и снова перезагрузитесь. Это будет означать, что у вас все еще запущен Gnome, но вы просто взаимодействуете только с командными строками и без среды рабочего стола (, вы всегда можете повторно -включить его, просто заменив disableна enable, а затем rebootснова ).

(Я только вчера установил Arch Linux, поэтому, если я ошибаюсь, прошу меня простить :P.)

Я также только что понял, что вы не можете загрузить терминал. Я также столкнулся с этой проблемой. Я считаю, что не выполнил шаг должным образом, который неправильно устанавливал мой язык (Я не знаю, как я это испортил :)), но используя среду рабочего стола, я просто зашел в настройки и пошел к region & languageи изменил мой язык на английский, что затем решило мою проблему и смогло загрузить терминал. Возможно, у вас также может быть проблема с форматом, который находится прямо под языком, поэтому попробуйте исправить и это.

Удачи

0
07.10.2021, 11:30
1 ответ

Вы объявили drivevarмассивом, но используете его как единую строку элементов -.

Например, drivevar=$(lsblk...)назначает вывод первому (нулевому )элементу массива, а echo $drivevarвыводит этот же элемент. Но вы не используете его как массив; вы используете его просто как строку, содержащую список элементов, разделенных пробелами -.

Это означает, что когда вы пытаетесь перебрать его с помощью for i in "${drivevar[@]}", все результаты находятся в первом (и только )элементе.

Возможно, вам следует использовать присваивание массива вида var=(element element…),

drivevar=( $(lsblk …) )               # Assignment
echo "drivevar=( ${drivevar[@]} )"    # Debug line, I assume

О. Вы захотите удалить созданный вами файл, вызвавший исходную ошибку. Имейте в виду, что имя файла содержит символы новой строки, поэтому при использовании lsили rmоно может выглядеть странно. Используйте rm -i, чтобы запросить подтверждение перед удалением :

.
rm -i /dev/sdb*sdc*sdd*

Кроме того, ваше выражение присваивания может быть упрощено из этого

lsblk | awk {'print $1'} | grep '^sd' | grep -v 'sda\|sdb'

на что-то подобное, что позволяет избежать awk | grepантипаттерна

lsblk -dn -o NAME | awk '/^sd[^ab]/'
2
07.10.2021, 13:06

Теги

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