“смонтируйтесь: / занято” при попытке смонтироваться как только для чтения так, чтобы я мог выполнить zerofree

В то время как то, что Вы отправили, будет работать в RHEL 6, я вижу, что RH несколько быстро удержали от использования использование inittab для выполнения TTYs.

Материал в/etc/init от Выскочки (я думал, что Вы будете знакомы с тем прибытием из Ubuntu), замена для sysV инициализации (т.е. что раньше было в/etc/init.d и/etc/rc.d/rcX.d директорах). И в случае файлов Вы указываете, настраивает аппаратные средства последовательного порта.

Когда все остальное перестало работать прочитайте руководство:

/etc/inittab файл удерживается от использования и теперь используется только для установки значения по умолчанию runlevel... Для конфигурирования работы getty последовательной консоли не по умолчанию необходимо теперь записать Новомодное задание вместо того, чтобы редактировать/etc/inittab. Например...

Я предполагаю, что имеет смысл запускать getty's на современной машине ниже в стеке, чем inittab. Однако в целях обеспечения резервного удаленного доступа администратора, я думаю, что было бы намного более разумно запустить консоль на последовательном порте. т.е. посмотрите материал о/etc/init/start-ttys.conf

38
30.06.2012, 23:18
11 ответов

Некоторые процессы сохраняют файлы открытыми для записи. Они могли быть, например, программами, которые пишут журналы, как rsyslogd, сетевые инструменты, как dhclientили что-то еще. Завершение работы их один за другим и попытка перемонтирования могли бы работать.

Можно найти процессы, которые используют определенные файлы при помощи программы fuser. Например, fuser -v -m / возвратит список процессов. Однако я не уверен, является ли это один из них, который заставляет файловую систему напряженно трудиться.

24
27.01.2020, 19:35

Можно только повторно смонтировать файловую систему, только для чтения, если нет никакого процесса, который имеет файл, открытый для записи. Выполненный lsof / видеть, какие процессы имеют файлы, открытые в корневой файловой системе. Файлы, открытые для записи, будут обозначены в FD столбец. Можно отфильтровать их с

lsof / | awk '$4 ~ /[0-9].*w/'

Для фильтрации идентификаторов процесса автоматически проанализируйте вывод lsof -F pa:

lsof -F pa /home | awk '/^p/ {pid = substr($0, 2)} /^a.*w/ {print pid}'
21
27.01.2020, 19:35
  • 1
    Попробованный этим решением, все еще занятым, мог бы, потому что некоторый ресурс не может показать с этим путем. После остановки некоторые рабочие сервисы, может повторно смонтировать фс как только для чтения. –  Sam Liao 20.05.2015, 11:43
  • 2
    , я закрыл все процессы, которые имели файл, открытый для чтения, пишущий или обоих (u) и это все еще говорит занятый. –  Hubro 15.03.2017, 13:29

Я предполагаю, что Вы пытаетесь работать mount команда в VM. Так или иначе у Вас, вероятно, есть другой корневой раздел, чем автор сообщения форума.

Попытка:

mount -o ro,remount /

Который не зависит от фс или монтирует опцию. Если это не работает, можно также попытаться определить корневую фс с grep " / " /proc/mounts или cat /proc/cmdline. Если Ваша корневая файловая система, например,/dev/mapper/system-rootfs, можно использовать:

mount -o ro,remount /dev/mapper/system-rootfs /
0
27.01.2020, 19:35

Если вы используете systemd, то запись на диск останавливается путем остановки systemd-journald.

# systemctl stop systemd-journald.socket
# systemctl stop systemd-journald.service
# mount -o ro,remount /
4
27.01.2020, 19:35

Иногда существует так много процессов, которые загружают монтирование, что может быть проще просто перезагрузиться с монтированием только для чтения.

Измените запись для корневой файловой системы в / etc / fstab , например:

/dev/sda1 / ext2 relatime,rw,errors=remount-ro 0 1

станет:

/dev/sda1 / ext2 noatime,ro 0 1

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

Когда вы закончите, снова смонтируйте файловую систему для чтения / записи ( mount -o remount, rw / ) и отмените изменения в / etc / fstab .

На основе https://wiki.debian.org/ReadonlyRoot#Enable_readonly_root

6
27.01.2020, 19:35

Для всех, кто просто ищет быстрое исправление для вставки в свой терминал ...

(Прежде чем выполнять приведенные ниже команды, убедитесь, что у вас есть выполнил другие шаги, такие как telinit 1 .)

Нашел это :

fuser -mv /dev/sda1 > /tmp/sda1.pids
kill `cat /tmp/sda1.pids`

Команды могут убить ваш сеанс, но после того, как вы вернетесь, ваш раздел готов к перемонтированию.

1
27.01.2020, 19:35

Улучшение ответа Питера:

Я не мог убить процессы, которые используют мою точку монтирования. Итак, я сделал следующее:

  • Изменить / и т. Д. / fstab для запуска в режиме только для чтения при следующей загрузке. Пример: / dev / sda1 / ext2 ro 0 1
  • Перезагрузите и откройте оболочку (например, Host Key + F2)
  • Запустите zerofree

Чтобы «восстановить» вашу систему:

  • Смонтируйте с опцией чтения-записи: $ mount -o remount, rw / dev / sda1
  • Снова отредактируйте / etc / fstab , восстановив исходное значение

Дополнительно: при необходимости откройте режим восстановления на любом этапе:

  • Перезагрузка
  • Удерживать сдвиг во время загрузки ВМ
  • Дополнительные параметры> Параметр ядра с режимом восстановления> Приглашение к корневой оболочке
12
27.01.2020, 19:35

У меня была проблема, из-за которой я не мог перевести свою машину в режим только для чтения. Решение проблемы заняло у меня больше времени, чем я хотел бы признать... Думаю, моя проблема заключалась в том, что я оставил Apache -Zeppelin включенным и забыл об этом. Убедитесь, что вы не делаете то же самое с другим типом хостинга. Чтобы решить проблему, я использовал fuser -kill /, чтобы завершить все процессы, которые могли вызвать проблему, и это позволило мне вернуться в режим ro.

0
27.01.2020, 19:35

Если вы по-прежнему не можете размонтировать или перемонтировать устройство после остановки всех служб и процессов с открытыми файлами, возможно, ваше устройство занято файлом подкачки или разделом подкачки. Это не будет отображаться с fuserили lsof. Отключите подкачку с помощью:

sudo swapoff -a

Вы можете заранее проверить и показать сводку любых разделов подкачки или файлов подкачки с помощью:

swapon -s

или:

cat /proc/swaps

В качестве альтернативы использованию команды sudo swapoff -aвы также можете отключить своп, остановив службу или модуль systemd . Например:

sudo systemctl stop dphys-swapfile

или:

sudo systemctl stop var-swap.swap

В моем случае отключение подкачки было необходимо, помимо остановки любых служб и процессов с открытыми на запись файлами,чтобы я мог перемонтировать свой корневой раздел как только для чтения, чтобы запустить fsckна моем корневом разделе без перезагрузки. Это было необходимо на Raspberry Pi с Raspbian Jessie.

7
27.01.2020, 19:35

Прикрепите файл vdi как дополнительный и не -системный том к другому VirtualBox. Там вы можете (повторно )смонтировать его по мере необходимости и выполнить нулевое освобождение.

Допустим, вы хотите сжать диск VDI VM1(Виртуальная машина 1 ). Тогда вам понадобится второйVM2 . То есть:

  • Убедитесь, что ни ВМ1, ни ВМ2 не запущены;
  • Из диспетчера VirtualBox:

    • Выберите ВМ2,
    • «Настройки» -> «Память» -> «Добавить жесткий диск» :"Select it as additional disk",

    • выберите файл vdi для ВМ1, который вы хотите сжать. Подсказка :Убедитесь, что жесткий диск, только что добавленный в ВМ2, идет вторым в порядке загрузки -после исходного диска ВМ2.

    • запустите ВМ2 :теперь вы можете (повторно )смонтировать том ВМ1 как дополнительный диск для ВМ2, потому что ни один процесс не использует его в ВМ2. Подсказка :Сначала откройте том с помощью браузера Linux, который автоматически смонтирует том. Затем используйте mount -l, чтобы увидеть, какой из них _Device_в команде sudo mount -o remount,ro _Device_. В моем случае это было /dev/sdb1 . Таким образом, команда была (1 )sudo mount -o ro,remount /dev/sdb1, а затем (2)sudo zerofree /dev/sdb1.

Вместо VM2 нужно иметь возможность загружаться с установочного диска, например .iso-образа и добиваться того же, НО я не пробовал.

2
27.01.2020, 19:35

Решение для меня состояло в том, чтобы перезагрузить ОС и выбрать «режим восстановления» в меню загрузки GRUB. Из «режима восстановления» запущено меньше процессов, а перемонтирование read -работает нормально.

Если в системе есть файл подкачки в корневой файловой системе (, а не в разделе подкачки ), также необходимо временно отключить файл подкачки с помощью swapoff -a.

0
27.01.2020, 19:35

Теги

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