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 ]