Уменьшите LVM/tmp размер к 10G и добавьте все к / корневой каталог

rm /* должен удалить очень мало. Существует нет -r отметьте там, который рекурсивно удалил бы что-либо, и без него, каталоги не будут удалены (и даже если каталоги были удалены, только пустые могут быть удалены). Этот ответ утвержден при условии, что Вы не работали rm -rf /*.

Единственные файлы в корневой файловой системе последствия могут быть символьными ссылками на ядро и initrd (хотя в одной системе Ubuntu я смотрю на, они не существуют), или a /lib64 символьная ссылка в 64-разрядных системах.

Проблема может просто состоять в том что /lib64 -> /lib символьная ссылка была удалена. Это довольно противно, хотя, поскольку примерно каждая программа будет полагаться на ту символьную ссылку:

$ ldd /bin/bash
...
    /lib64/ld-linux-x86-64.so.2 (0x00007f8946ab7000)

Это ld-linux динамический загрузчик, и если это не доступно, Вы не можете выполнить динамические исполняемые файлы. Это сделает чрезвычайно трудным войти в систему, и Вы не можете вообще.

Один спаситель может быть busybox. Выполните это для проверки:

$ ldd /bin/busybox
    not a dynamic executable

В этом случае busybox должен быть выполнимым, но вопрос состоит в том, как можно выполнить его?

Если у Вас есть доступ к подсказке загрузчика, Вы можете загружаться с init=/bin/static-sh, где статичный-sh символьная ссылка на busybox (проверьте это /bin/static-sh существует - это делает в моей системе, но это не стандартная Ubuntu. Эта ошибка предполагает, что это, доступно.)

После того как у Вас есть корневая оболочка, можно воссоздать /lib64 символьная ссылка. Вы, возможно, должны сначала повторно смонтировать корневую файловую систему как чтение-запись. busybox нужно встроить эти инструменты, которые можно выполнить следующим образом:

# busybox mount -o remount,rw /
# busybox ln -s /lib /lib64
# /bin/bash
bash# 

Если удар работает, проблема должна быть решена.

3
02.11.2011, 10:56
2 ответа

Необходимо размонтировать ext3 файловую систему для уменьшения ее. umount -l средства, что файловая система будет размонтирована, когда не будет никакого более открытого файла на нем.

Выполненный lsof /tmp видеть то, на чем файлы открыты /tmp. При выполнении X-сервера Вы будете видеть его сокет /tmp/.X11-unix/X0. Вы не можете удалить тот сокет ¹ и все еще смочь соединиться с X-сервером. Кроме этого, большинство файлов имеет тенденцию быть недолгим или принадлежать программам, которые могут быть перезапущены.

Если Вы действительно захотите выполнить операцию в живой системе, то необходимо будет мигрировать на другое /tmp файловая система, по крайней мере, на время операции. Вы могли перейти к tmpfs, в который /tmp хранится в RAM или подкачке; см. это руководство. На самом деле, tmpfs для /tmp общая установка; Вы могли бы хотеть придерживаться этого и удалить /tmp раздел в целом (и возможно увеличивают Вашу подкачку немного вместо этого).

После того как Вы смогли закрыть все от /tmp, Вы сможете размонтировать его. Не использовать umount -l, это бесполезно здесь, так как это освобождает точку монтирования, но не устройство, тогда как то, что Вы хотите, должно освободить устройство. Однажды /tmp размонтирован, выполнен fsck, выполненный resize2fs уменьшать его и уменьшать логический том LVM соответственно. Или Вы могли бы на самом деле сэкономить время путем прямого уменьшения объема LVM и создания новой файловой системы для /tmp. (Если у Вас есть какие-либо данные, Вы хотите удержать /tmp, Вы делаете его неправильно. /tmp для данных, которые не должны быть сохранены между перезагрузками и окруженными файлами /tmp справедливая игра для удаления.)

Если все это кажется пугающим, перезагрузка к системе восстановления (живой CD или USB), и действуйте оттуда.

¹, И при этом Вы не можете переместить его в другую файловую систему: это удалило бы оригинал и создало бы новый сокет.

2
27.01.2020, 21:29

Вы не можете размонтировать/tmp в рабочей системе. Необходимо загрузиться от LiveCD или спасти CD и сделать это там.

0
27.01.2020, 21:29

Теги

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