Рабочая инструкция по переносу системы Raspbian с SD карточки на USB флешку. Загрузочный раздел обязательно остается на SD карте.
Имеется Raspberry Pi 3 B+, Raspbian Stretch на SD карте 8gb (класс 10) и USB флешка Apacer на 8gb
Все делал на рабочей системе с Domoticz на борту.
Проверяем файловую систему:
sudo df -h
/dev/root это наша файловая система
/dev/mmcblk0p1 это загрузочный раздел на sd карте
Теперь вставим флешку в малину и проверим, распознается ли она:
sudo lsusb
Device 005 – это USB-флешка
Теперь проверим, распознается ли флешка операционной системой:
sudo tail /var/log/messages
в данном случае USB-флешка обозначается как /dev/sda
Теперь займемся файловой системой. Установим:
sudo apt-get install gdisk
Далее выполним разбиение:
sudo gdisk /dev/sda
«d» для удаления, «n» для создания нового раздела и «w», чтобы все это записать
Теперь редактируем файл /boot/cmdline.txt :
sudo nano /boot/cmdline.txt
приводим значение root=/dev/mmcblk0p2 на root=/dev/sda1
Добавляем в конце задержку в 5 секунд:
rootdelay=5
В итоге наш файл /boot/cmdline.txt должен выглядеть следующим образом:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait rootdelay=5
Теперь делаем форматирование, монтирование, установку rsync и копирование:
sudo mke2fs -t ext4 -L rootfs /dev/sda1 sudo mount /dev/sda1 /mnt sudo apt-get install rsync sudo rsync -axv / /mnt
Процесс копирования занимает минут 10-15
Затем надо ввести изменения в таблицу файловой системы, т.е. в /etc/fstab (на флэшке, а не карте).
выполняем:
sudo nano /mnt/etc/fstab
Добавляем следующую строчку:
/dev/sda1 / ext4 defaults,noatime 0 1
И добавляем комментарий перед отсылкой к SD-карте:
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
Теперь это должно выглядеть как-то так:
Все готово. Для проверки того, откуда у меня сейчас запустится система, я создал на usb флешке файл /mnt/home/pi/hello.txt
sudo nano /mnt/home/pi/hello.txt
и добавил текст hello
Теперь перезагружаем raspberry:
sudo reboot
И смотрим, есть ли наш файл:
sudo nano /home/pi/hello.txt
Система запустилась с usb накопителя. Что я сделал дальше, так это переустановил Domoticz:
sudo curl -L install.domoticz.com | bash
И выбрал чистую установку (вся база и все устройства с настройками естественно сохраняются, но бэкап папки domoticz обязателен)
Опять перезапустил малину и все отлично работает. Теперь на usb флешке у нас система, а на sd карте остался загрузочный раздел.
P.S.
Чтобы вернуть запуск малины с sd карты, редактируем файл /boot/cmdline.txt (Через Windows, например)
sudo nano /boot/cmdline.txt
Меняем значение root=/dev/sda1 на root=/dev/mmcblk0p2
А что даст такая манипуляция ?
SD карта дольше проживет ?
Теоретически да, на практике не проверял. Если флешка хорошая, то и скорость чтения/записи должна быть выше
Cделал всё по инструкции, малинка запустилась ок. Обязательно ли переустанавливать Domoticz?
Если домотикз работает, то не обязательно его переустанавливать