После изучения того, как bootlogd на самом деле умудряется вести журнал, получается, что его можно убедить протоколировать как процесс выключения/перезагрузки, так и процесс запуска. bootlogd запускается на ранней стадии процесса загрузки. Затем он делает некоторую магию с устройствами tty и pts, чтобы записать в журнал все выходные данные на терминал, к которому он подключен. Затем он останавливается позже в процессе загрузки, предположительно до того, как он начнет протоколировать выход пользователя, работающего на tty.
sudo port -d selfupdate
sudo port clean gnuplot
sudo port install gnuplot
Если bootlogd будет снова запущен во время процесса выключения/перезагрузки и остановлен до того, как какая файловая система, содержащая журнал, будет размонтирована, то запись большей части процесса выключения будет доступна для чтения при следующей загрузке.
bootlogd может быть запущен и остановлен во время запуска при помощи двух сценариев init
. Один из них является обычным сценарием
init, который запускает/останавливает процесс как обычно. Другой - это 'обратный' скрипт init#!/usr/bin/env bash
cd /2/screenshots/
x=$(date +"%y%m%d%H%M%S")
screencapture -i -o $x.png
sips -s format jpeg -s formatOptions 60 $x.png -o $x.jpg
rm $x.png
Для того, чтобы bootlogd
Сделайте остановку изменения LSB-скрипта 'в обратном направлении' вместо остановки.Установить [11962]bootlogd[11963], если вы еще этого не сделали.
Скопируйте два init-скрипта
Измените заголовки LSB так, чтобы оба скрипта выполнялись в нужное время во время выключения/перезагрузки
rename ' ' '_' [filenames...]
Установите их с помощью [11964]updateate-rc.d[11965].
Вот мои изменения в качестве скрипта копирования/вставки
bash (если вы хотите сделать изменения вручную, заголовки LSB, которые я использовал, находятся в патче):
rename 's/ /_/g' *
Все сообщения, которые появляются перед остановкой bootlogd, будут сохранены в /var/log/boot.
bootlogd удаляет экранирующие символы из текстового потока. Следующая команда (
bash
) отобразит журнал в цвете, как он появляется во время выключения:
См. этот вопрос -
https://stackoverflow.com/questions/10757823/display-file-with-escaped-color-codes-boot-messages-from-bootlog-daemon/19011140
/ver/log/bootнедостаточно, так как скрипт в какой-то момент делает
cdна
/var/log).
Вышеуказанное также будет работать только в том случае, если /var/log находится в корневых файлах. Если нет, то зависимости должны быть переработаны таким образом, чтобы
umountfs был выполнен после остановки
bootlogd
. Или войдите в файл rootfs.
.
Разъедините USB-накопитель и откройте новый терминал.
Сначала получите имя устройства с помощью:
sudo fdisk -l
(Пример: /dev/sdb1)
Создайте новую точку монтирования:
sudo mkdir -p /mnt/usb
Затем снова смонтируйте USB-накопитель с установленным владельцем:
sudo mount -o uid=$(id -u),gid=$(id -g) /dev/sdb1 /mnt/usb/
В вышеприведенной команде единственное, что нужно изменить, это имя устройства /dev/sdb1
на найденное с помощью команды fdisk
.
Теперь у вас будет право собственности на USB-накопитель, и вы сможете делать все, что захотите.
Проверьте dmesg.
Возможно, файловая система настроена -только для чтения потому что том не был должным образом размонтирован и некоторые данные могут быть повреждены.
В таком случае вам следует размонтировать файловую систему и запустить fsck.