Ещё одна попытка readonly

16 November 2014

   Raspberry "съедает" уже третью флешку.. Карта была microSD на 32Гб с адаптером. Не надежная техника пошла нынче, всего 1000 циклов перезаписи согласно исследованию на Хабре.. При чем вроде бы даже настроил всю систему работать с read-only-fs, но видимо не полностью. В этот раз раздобыл флешку по древней, полноформатную и менее ёмкую, а так же новый мануал как сделать систему с данными в памяти. И так, поехали.

   Вкратце: выключаем swap, удаляем проверки на время при загрузке, устанавливаем unionfs-fuse, делаем скрипт для его монтирования, правим fstab, создаём дополнительные папки для гибридной работы с unionfs. Папки var и etc мигрируют в память, что бы система могла работать, думая что в них можно писать. Получаем файловую систему без записи, но с рабочими журналами и сервисами. Так же рекомендуют установить busybox-syslogd, что бы уменьшить количество журналов и система вдруг не встала по отсутствию памяти.

   Самая хитрость тут - сделать режим для правильной работы установщика пакетов. В комментариях ко второй статье привели хороший скрипт, чутку мною допиленный для папки mnt:

#!/bin/bash

# remount root rw
mount -o remount,rw /

# prapare target paths
mkdir -p /chroot
mkdir -p /chroot/{bin,boot,dev,etc,home,lib,opt,proc,root,run,sbin,sys,tmp,usr,var,mnt}

# mount special filesystems
mount -t proc proc /chroot/proc
mount --rbind /sys /chroot/sys
mount --rbind /dev /chroot/dev

# bind rw directories
for f in {etc,var}; do mount --rbind /${f}_org /chroot/$f; done

# bind remaining directories
for f in {bin,boot,home,lib,opt,root,run,sbin,tmp,usr,mnt}; do mount --rbind /$f /chroot/$f; done

# chroot
echo "Note: /boot is still mounted read-only, remount to read-write if needed."
echo -e "\e[33mYou are now in read-write chroot. Use CTRL+D when done to exit chroot and mount read-only again.\e[39m"
chroot /chroot /usr/bin/env PS1="(rw) \u@\h:\w\$ " sudo -u pi RWMODE="yes" /bin/bash -l

# unmount mounts
for f in /chroot/{bin,boot,dev,etc,home,lib,opt,proc,root,run,sbin,sys,tmp,usr,var,mnt}; do
umount -l $f
done

sleep 1

# remount read-only again
echo -e "\e[32mChroot left, re-mounting read-only again.\e[39m"
mount -o remount,ro /

   Так же захотелось подсветки файлов при работе в режиме редактирования, по этому в скрипте выше нет аттрибута "--noprofile" из оригинала. В добавок в ".bashrc" добавились строчки для индикации режима записи. Очень надеюсь что такой подход позволит текущей флешке прожить дольше предшественников..

if [ "$RWMODE" = "yes" ]; then
   PS1="(rw) \u@\h:\w\$ "
fi

   И под завершение - велосипеды! С новыми колёсами закручивать на горку за Жисой через 51ую стало вполне себе обычным делом. Осилить бы ещё подъем от Автовокзала до Жисы.. Но там какой-то адовый градиент. Зато красивый закат.


instagram ]

NodeJs unit testing

25 September 2014

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

   Блокировка через redis. Правильные флаги, и всякое такое:

Javascript WAT

20 July 2014

   Помнится раньше, когда читал книжки по PHP и проходил всякие тесты, было весьма популярно использовать тонкости языков. Различные хитрости про конвертации, канкатинации и наследования. Вот всё то, что мне раньше встречалось с PHP и C# - ничто посравнению с хитростями JavaScript'а! Вот они там шайтаны.. Воистину "== is the spawn of satan." (с)

Moar NodeJs!

25 June 2014

   Ещё пачка интересных инструкций по Ноду, и фотография для разбавки~

   И не только по Node'у. Вот к примеру "Lollytin — конструктор лэйаутов для Bootstrap 3". Шикарно же! Заделать шаблоны, и останется только думать о коде.


[ instagram ]

RetroWatch vs вело-компьютер

18 February 2014

   Давным давно была у меня мысль сконструировать собственный вело-компьютер на замену потерянному фирменному. Идея сама по себе крайне приятная и широкая. Можно было бы сделать кастомный корпус, как часть рамы, например. Можно было бы реализовать все желаемые функции от всё того же спидометра и хронометра до калориметра и графика высот. Но как бы не хотелось, на пути реализации стоят крайне смутные знания матчасти...

   Собственно эту тему вспомнил потому, что нашлась удобная модульная реализация умных часов. А от умных часов до вело-компьютера - один шаг.


© Oleksiy Tishyn 2018