FreeBSD 12-CURRENT на PINE A64+ или Raspberry Pi 3

PINE A64

Pine A64+ – 64-битный одноплатный ПК с широкими возможностями. Подробно о характеристиках можно почитать на их сайте. Из того, что мне лично нравится, это наличие отдельного порта для подключения литиевой батареи*, HDMI-выхода**, полноценных USB-портов (хотя и стандарта 2.0), 1Gbps Ethernet, портов для LCD (touch screen) и камеры. К сожалению, плата не очень компактная, но на ней можно построить неплохой медиа-центр, например. Это, конечно, если у вас не суперсовременный телевизор, который все это умеет и сам.

Не так давно я узнал, что на Pine можно установить… FreeBSD. На то время была одна или две сборки, но у меня не получилось их завести, устройство не реагировало при включении. Недавно я решил повторить эксперимент и узнал, почему у меня не получалось раньше.

Читать остальную часть заметки »

Теги: , , , , , , , ,

PythonDialogBug на FreeBSD в Letsencrypt

Многие наверняка слышали об инициативе по выдаче бесплатных сертификатов Let’s Encrypt (которую скоро переименуют и она будет жить на EFF). Выдаются они всего на 3 месяца, но обновление можно автоматизировать. Я тоже решил попробовать этого зверя, установил из портов и… обломался. Получил ошибку PythonDialogBug (полный лог см. ниже). Быстро найти решение не удалось, поэтому я забросил это дело на несколько месяцев. Когда снова “дошли руки”, начал гуглить информацию по питону. На одном форуме нашел предложение попробовать маленький скрипт:

Читать остальную часть заметки »

Теги: , , , , , , , , , , ,

Rsync и двоеточие

При попытке синхронизировать при помощи rsync каталог или файл, в имени которого содержится двоеточие, можно получить ошибку:

~> rsync -av 2015-07-31_01:32:46/ newdir/
ssh: Could not resolve hostname 2015-07-31_01: hostname nor servname provided, or not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]

Все, что находится до двоеточия считается именем или адресом хоста и не резолвится.

Решить проблему можно тремя способами:

— указать полный путь к файлу или каталогу;
— добавить перед файлом или каталогом точку-слеш (./);
— добавить перед файлом или каталогом в одинарных кавычках pwd и слеш (`pwd`/).

~> rsync -av /home/username/2015-07-31_01:32:46/ newdir/
~> rsync -av ./2015-07-31_01:32:46/ newdir/
~> rsync -av `pwd`/2015-07-31_01:32:46/ newdir/

То же самое относится и к scp.


Теги: , , , , , ,

Клонирование дисков

dd if=/dev/ada1 of=/dev/ada2 bs=4096 conv=notrunc,noerror,sync
# очень полезно, если на исходном диске много битых секторов

Много примеров тут.


Теги: ,

FreeBSD LiveCD — Сеть и доступ по SSH

Поднимаем сеть:

# назначаем адрес:
ifconfig re0 192.168.0.22
# или получаем автоматически, если на роутере DHCP:
dhclient re0

Настраиваем резолвер:

mkdir /tmp/etc 
mount_unionfs /tmp/etc /etc
ee /tmp/etc/resolv.conf
nameserver 8.8.8.8
# или IP роутера
nameserver 192.168.0.1

Поднимаем sshd:

ee /etc/ssh/sshd_config
# меняем строку "#PermitRootLogin no" на "PermitRootLogin yes"
# ставим пароль пользователю root:
passwd
# запускаем sshd:
/etc/rc.d/sshd onestart

Теги: , , , , ,

Восстановление открытого удаленного из системы файла на FreeBSD

Восстановить файл, который в системе удален, но еще открыт каким-то процессом, можно при помощи набора утилит Sleuth Kit (www.sleuthkit.org).

1. нужно узнать номер иноды, которую имеет удаленный открытый файл:

~> lsof +aL1 /

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

~> lsof +aL1 /home
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NLINK NODE NAME
less    29154 root    4r  VREG   0,87        8     0 33043586 /home (/dev/ad0p7)

2. используйте утилиту icat, которая откроет файл по номеру иноды:

~> icat -r /dev/ad0p7 33043586 > /path/to/new-filename

Если вы знаете имя каталога, где открыт файл, его имя можно получить непосредственно из каталога (пока файл открыт и не удален окончательно):

cat /home/work | strings

/home/work — это каталог. Но из полученной белиберды еще нужно удалить символы вида “^X” и имена существующих файлов. Более элегантный способ:

~> ls -1ai /home/
33044046 work/

~> fls -dF /dev/ad0p7 33044046
r/r * 33043586(realloc):        testme

В первой команде я узнал номер иноды каталога /home/work, затем вывел все удаленные файлы. testme – тот самый удаленный файл, открытый в less’е.

/home/ports/sysutils/sleuthkit
/home/ports/sysutils/lsof

Теги: , , , , , , ,

CLICOLOR

Внезапно не собирается пакет, ошибка более чем странная:

configure: error: newly created file is older than distributed files!

При этом с часами все в порядке. Лечится так:

unsetenv CLICOLOR_FORCE

Или, если вы используете bash:

unset CLICOLOR_FORCE

После сборки все можно вернуть обратно.


Теги: , , ,