środa, 31 stycznia 2018

Przechodzimy na Malinie z karty SD na dysk HDD/SSD...

Nadeszła pora...

Pora na zmianę głównego miejsca systemu Raspberry Pi. Wiele dobrego mogę powiedzieć o Raspberry Pi, ale na pewno nie to, że używanie kart pamięci (szczególnie przy wielu zapisach do loga, bazy danych, itp.) pozwala na bezstresową pracę. Ostatnio odzyskiwałem backup karty praktycznie co tydzień.

Jakoś tak się stało, że leżał mi mały dysk talerzowy 80GB ze starej PS3. Gdzieś, kiedyś w promocji kupiłem również aktywny hub USB. Niestety, napięcie na portach USB z Raspberry (nie chciałem modyfikować zmiennej max_usb_current) niby zasilało dysk, ale bardzo niestabilnie. Podłączyłem dysk do huba, hub do USB, podpiąłem zasilanie, ruszyło. Pierwszy sukces.

Na początku warto sprawdzić jak nasz dysk przestawia się w systemie, żeby przez przypadek nie sformatować czego, czego zdecydowanie nie chcemy ;)

sudo fdisk -l



Ok, jak widać mój dysk 80GB znalazł się pod /dev/sdb/. Pod /sda/ jest pendrive na którego zapisywane są backupy i leży część danych, na przykład z bajkami dla dzieci. Tak w sumie to warto będzie to niedługo przenieść na dysk, a backupy wypchnąć albo na FTP, albo w chmurę. Może kiedyś...

Skoro wiemy jaki dysk mamy sformatować, bierzemy się do pracy.

sudo fdisk /dev/sdb

I teraz po kolei komendy (po każdej literze Enter):

d - wyczyść dysk

n - new

 p - utwórz domyślną partycję

 1 - podaj numer partycji

w - zapisz zmiany

Po kolei (dinozaury może jeszcze pamiętają to wszystko ze starych komputerów, kiedy jeszcze nie było Windows i dyski trzeba było formatować z linii poleceń :D ):
1. Wymazaliśmy partycje z dysku, jeżeli jakieś były
2. Utworzyliśmy partycję domyślną
3. Podaliśmy dane domyślne - dla uproszczenia, oczywiście partycji można zrobić więcej, zmienić ich rozmiar...
4. Zapisaliśmy zmiany


Pora sformatować dysk.

sudo mkfs.ext4 /dev/sdb


Póżniej musimy dysk sparować z Raspberry Pi:

sudo mount /dev/sdb /mnt

I teraz sedno, synchronizacja naszej karty SD z dyskiem. rsync zachowuje wszystkie uprawnienia, restrykcje, itp.

sudo rsync -axv / /mnt

Kilka minut i mamy kopię karty na dysku.

Wypadałoby również powiadomić Raspberry Pi, że karta SD jest potrzebna tylko i wyłącznie do 'bootowania', cały system jest już na dysku twardym.

To ważna różnica! Raspberry Pi 3 ma opcję jednorazowego przeprogramowania bitu OTP, aby bootowanie odbywało się bez użycia karty SD, ale osobiście się na to jeszcze nie zdecydowałem - po kilku tygodniach testów możliwe, że tak zrobię. Obciążenie karty SD jest jednak teraz minimalne i znacznie zwiększa bezawaryjność systemu.

Najpierw kopia

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

I zmieniamy plik cmdline.txt

sudo nano /boot/cmdline.txt

Zmieniamy wartość przy root i dodajemy na końcu rootdelay

root=/dev/sdb i na końcu rootdelay=5

Efekt:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sdb rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait rootdelay=5


Brawo! Teraz pora wyedytować fstab, aby nasz dysk zawsze się mapował i system wiedział, że 'rootfs' jest na HDD. Czyli używamy karty tylko na moment startu Raspberry Pi, później już wszystko odbywa się na HDD.

sudo nano /mnt/etc/fstab

Zamieniamy wpis przy karcie SD na nasz HDD, stary komentujemy:

/dev/sdb       /               ext4    defaults,noatime  0       1

U mnie wygląda to tak:
proc            /proc           proc    defaults          0       0
/dev/sdb       /               ext4    defaults,noatime  0       1
PARTUUID=376f54aa-01  /boot           vfat    defaults          0       2
#PARTUUID=376f54aa-02  /               ext4    defaults,noatime  0       1


Cudnie! Teraz 

sudo reboot

Chwila stresu i powinniśmy wystartować z dysku. Jak to informatycy piszą: 'U mnie działa'.

Mam nadzieję, że teraz żadnych rozjazdów w systemie nie będę już miał.

W przyszłości przejdę na dysk SSD, gdy uda mi się kupić coś fajnego, małego w dobrej cenie.

42 komentarze:

  1. Może nie na temat. Znalazłem ciekawą ofertę.
    https://www.mobilcom-debitel.de/shop/digitale-welt/smarthome/heizungssteuerung/smarthome-heizungssteuerung-starterbox/p/P-2134075

    OdpowiedzUsuń
  2. Bardzo się przydał opis .Zrobiłem to samo u siebie na rpi zero w.Pytanie mam tego typu : Mam 2 partycje na dysku i chciałbym aby kopia bazy raz zapisywała sie na 2 partycji .Posiada pan gdzieś skrypt lub opis jak to wykonać?Mam nadzieje że teraz nie będzie się wysypywać raspbian z domoticzem.

    OdpowiedzUsuń
  3. Bardzo się przydał opis .Zrobiłem to samo u siebie na rpi zero w.Pytanie mam tego typu : Mam 2 partycje na dysku i chciałbym aby kopia bazy raz zapisywała sie na 2 partycji .Posiada pan gdzieś skrypt lub opis jak to wykonać?Mam nadzieje że teraz nie będzie się wysypywać raspbian z domoticzem.

    OdpowiedzUsuń
  4. Powiem tak... Robienie backupu na ten sam dysk (mimo, że inna partycja) mija się moim zdaniem z celem. Jak padnie, to wszystko...

    A skrypt opisywałem tutaj: https://cezarowy.blogspot.com/2017/11/kopia-bezpieczenstwa-bazy-folderu.html

    OdpowiedzUsuń
  5. pytanie mam takie .poprzednio przezuciłem na dysk hdd a w jaki sposób zrobic to z hdd na ssd (swiezo kupiony)?Dodam ze domoticz chodzi teraz z dysku hdd 500gb i szkoda go teraz do tego celu.

    OdpowiedzUsuń
    Odpowiedzi
    1. Pokrętne pytanie - chodzi Ci wyłącznie o Domoticz? Bo jeżeli tak, to wystarczy przekopiować folder. Jeżeli nie - rsync z HDD na SSD powinien sobie z tym poradzić, jeżeli zamontujesz oba naraz. Będę miał ten sam problem w przyszłości, bo teraz też mam HDD. Szukam jakiegoś małego SSD (max 40GB) a teraz wszystko minimum 120GB.

      Usuń
  6. zrobiłem na nowo na starszym backupie .W kradł Ci się chochlik w"sudo fdisk /dev/sdb/" Nie powinno być ostatniego slasha :sudo fdisk /dev/sdb . Pozdrawiam

    OdpowiedzUsuń
  7. Ja kupiłem na ali:KingDian SATA SATA2 S100 8gb bo wiekszy i tak nie potrzebny i smiga.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ha, bardzo dziękuję za obie odpowiedzi, już poprawiam. Za sugestię dysku również dziękuję.

      Usuń
  8. Cześć

    Przy skopiowaniu na dysk coś mi się zapętliło:
    Po wpisaniu sudo rsync -axv / /mnt




    kups/daily/backup-day-16-Domoticz.db
    mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/home/pi/domoticz/bac kups/daily/backup-day-16.db
    mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/home/pi/domoticz/bac kups/daily/backup-day-17-Domoticz.db
    mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/mnt/home/pi/domoticz/bac kups/daily/backup-day-17.db

    OdpowiedzUsuń
  9. Znalazłem coś takiego:
    With --exclude option users’ can specify folders that has not to be copied to destination; usually this string contains /dev, /sys, /run, /tmp, /proc. Could be necessary to add also /mnt or /media if they’ll not be used as backup destination folder, otherwise could start an infinite loop.

    OdpowiedzUsuń
  10. Solved: przeszedłem całą procedurę jeszcze raz i sie udało

    OdpowiedzUsuń
    Odpowiedzi
    1. Wysypałem się na tym samym...

      Usuń
    2. Bardzo przepraszam za brak odpowiedzi, w pewnym momencie przestałem dostawać powiadomienia o nowych komentarzach.

      Usuń
  11. Odświeżę stary temat bo i u mnie przyszedł chyba czas na przesiadkę z karty na dysk. I takie pytanie: ma znaczenie co to będzie za dysk, czy HDD czy SSD? On i tak jest podłączony pod USB 2.0 więc raczej SSD nie ma sensu? Ale z drugiej strony, jak mam niepotrzebny dysk SSD to nie ma przeciwwskazań aby go użyć?
    No i jak podłączyć dysk do RPi? Wystarczy zwykła kieszeń na dysk czy lepiej kupić jakieś "inne" przejściówki?

    Jak po przejściu z systemem na dysk, wygląda dalej użytkowanie? Jestem "amatorem" jeśli chodzi o linuxa, i wszystko co robię z Domoticzem opiera się na tutorialach z netu (m.in. dużo z Twojej strony:)). Rozumiem, że wtedy wszędzie będzie trzeba uwzględniać inne położenie katalogu z Domoticzem, tak?

    OdpowiedzUsuń
    Odpowiedzi
    1. Już odpowiadam: nie ma żadnych przeszkód co do SSD, jest nawet szansa, że nie będziesz przy nim potrzebował aktywnego huba USB. Ja przy HDD musiałem podać dodatkowe zasilanie. Kieszeń nie gra żadnej roli praktycznie - tak jak piszesz - jest i tak wyłącznie USB 2.0.

      Co do zmiany - nie zauważysz żadnej różnicy, rsync robi kopię 1:1, wyłącznie robi się boot z karty i później dysk wyglada identycznie jak na karcie SD.

      Usuń
  12. Ja ciągle mam problem ze robieniem backupu na zewnętrzny USB. Po porostu nie wykrywa mi go w mailinie, albo nie potrafię tego zrobić. Całość barfba ładnie się spisuje, prawie rok bez wiewiększ problemów, kilkafziekilk urządzeń, kilka scen. Dzięki za bliga

    OdpowiedzUsuń
    Odpowiedzi
    1. Z tego co pisałeś powyżej, wydawało się, że zakończyłeś sukcesem. Jeżeli df -h nie pokazuje dysku, może to znaczyć, że potrzebujesz aktywnego huba USB

      Usuń
  13. No tak, przesiadłem się na SSD, dzięki za pomoc. Ale jeszcze chciałbym backup na pendrive. Dziś kolejny dzień walki.

    OdpowiedzUsuń
  14. witam.
    wszystko za pierwszym razem ruszyło ale jak teraz rozszerzyć partycje dysku? jak na sd.
    czy tego nie trzeba robić ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie musisz, ale dobrze by było jednak skorzystać z tego, że masz 120GB zamiast 16 na ten przykład ;) Raspi-config załatwi wszystko za Ciebie.

      Usuń
    2. w Raspi-config jest tylko karta SD niema dysku usb

      Usuń
    3. A przepraszam, za szybko poszedłem myślami. Jeżeli sformatowałeś dysk przed zrobieniem rsync to już nie musisz robić. Rsync nie robi przecież kopii karty 1:1, tylko przenosi wszystkie pliki zachowując uch atrybuty. Zresztą - sprawdź co pokazuje df -h

      Usuń
    4. Ostatnio musiałem wgrać cały obraz systemu na SSD pytanie mam jak zmienić wielkość partycji? Zgłasza mi domoticz że ma za malo pamięci. Więc nie wykorzystuje wszystkiego. Df -h wyświetla że mam 3gb i zajęte 100 %

      Usuń
  15. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  16. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  17. Jeszcze jedno pytanie (teraz na właściwym wątku :) przed przystąpieniem do przejścia na HDD. Aktualnie system mam SD 32 GB i trochę będzie mi jej szkoda, aby służyła tylko do odpalenia systemu - czy można umieścić np. czystego raspbiana na 16 albo 8 GB? (takie tez mam na stanie).

    OdpowiedzUsuń
    Odpowiedzi
    1. Oczywiście, bez problemu. Bo to jest tak: w sumie potrzebna nam jest wyłącznie partycja boot, tam deklarujemy skąd uruchamiamy. To jest jednak trochę naokoło, bo docelowo lepiej przeprogramować bit OTP, aby uruchamiać system wyłącznie z poziomu nośnika na USB (co jednak NIE wyklucza użycia karty SD w razie problemów, po prostu dodaje kolejną możliwość do 'kolejki'. Coś jak w BIOS - najpierw sprawdza kartę SD, później porty USB w poszukiwaniu bootowalnej partycji FAT). W Raspberry 3B+ ten bit jest już domyślnie zapisany. W sumie, to jak tylko znajdę chwilę to przeprogramuję go u siebie.

      Usuń
    2. ponoć tak ale to nie zadziałało. muszę korzystać z karty . inaczej system nie chce wstać na samym dysku usb. czyli po wgraniu obrazu na dysk tak jak poprzednio na kartę

      Usuń
    3. Stworz plik na karcie o nazwie timeout i byc moze pojdzie

      Usuń
    4. Ja w sumie dziurę logiczną zrobiłem. Bo tym moim sposobem to nie zadziała, bo nie ma partycji boot na HDD. Rsync'iem nie, ale zgranie obrazu na kartę i konfiguracja powinny pomóc. Tylko że diabelnie nie chce mi się stawiać wszystkiego od nowa (albo chociaż instalować nowe komponenty w stosunku do karty sprzed roku).

      Usuń
  18. Oki, super :-) To ja u siebie zajmę się przeniesieniem systemu na HDD i cierpliwie poczekam na Twoją zmianę (i tak pewno zajmie mi to dużo czasu :-)

    OdpowiedzUsuń
  19. Zrobiłem wszystko jak w opisie. Działa ale tylko po wpisaniu sudo ./domoticz i otwartym połączeniu ssh
    Po reboot domoticz sam się nie ładuje i nie można się do niego dostac na porcie 8080 (na karcie śmigał bez problemu).

    sudo cp domoticz.sh /etc/init.d
    sudo chmod +x /etc/init.d/domoticz.sh
    sudo update-rc.d domoticz.sh defaults

    Nie pomaga. Mam wrazenie jakby brakowało jakiejś ścieżki dostępu (albo była inna inie wskazywała na sda).
    Jakieś pomysły ? sugestie ? powoli zaczynam sie poddawać

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzisiaj robiłem migracje na ssd i po restarcie z domoticza malina kilka razy się resetuje, ale w końcu wstaje. Nie wiem o co biega. Dysk mam wpięty prosto pod malinę.

      Usuń
    2. Mnie to wygląda na problemy z zasilaniem. Masz dodatkowe zasilanie USB?

      Usuń
    3. Ten komentarz został usunięty przez autora.

      Usuń
    4. Jeśli chodzi o mnie, to czasami mam tylko jeden restart, a czasami dwa czy trzy po restarcie z domoticz. Niekiedy po restarcie bramka mysensors pod usb nie inicjuje się i bramka zigbee2mqtt (też usb) jest offline. Dioda zasilania od rpi nie sygnalizuje zmniejszonego napięcia. Faktycznie może zasilanie nie wyrabia.

      Usuń
  20. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  21. wszystko zrobione wedle poradnika.
    system wstaje, ale przy probie zrobienia czegokolwiek, nawet zwykle uruchomienie mc, pokazuje ze brak dostepu do tmp.
    przy probie skopowania jakiegokolwiek pliku nawet do katalogu /home/pi tez gada ze brak uprawnien:(

    OdpowiedzUsuń
  22. Ja dziekuje dziala:)
    Uwaga :
    sudo nano /mnt/etc/fstab

    nie potrzebne /mnt raczej...

    OdpowiedzUsuń
  23. Wpis zawiera bardzo ciekawe informacje

    OdpowiedzUsuń