Puncte:-1

dd întregul card SD la o partiție de pe HDD

drapel cn

Această întrebare specială este legată de Raspberry Pi, dar, de fapt, aceasta este o întrebare generală.

Deci, am un card SD cu sistem RPI care rulează pe el constând din două partiții:

Disc /dev/mmcblk0: 59,5 GiB, 63864569856 octeți, 124735488 sectoare
Unități: sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
Tip de etichetă de disc: dos
Identificatorul discului: 0xf4481065

Dispozitiv Boot Start End Sectors Size ID Tip
/dev/mmcblk0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 532480 124735487 124203008 59.2G 83 Linux

De asemenea, am conectat un HDD extern care funcționează ca un stoc de date format acum din patru partiții:

Disc /dev/sda: 1,8 TiB, 2000398934016 octeți, 3907029168 sectoare
Model de disc: EZRZ-00Z5HB0    
Unități: sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 4096 octeți
Dimensiunea I/O (minimă/optimă): 4096 octeți / 4096 octeți
Tip etichetă de disc: gpt
Identificator disc: 9E92BCDF-4CF7-4ECE-ABCD-5B6794FE747E

Dispozitiv Start End Sectors Size Type
/dev/sda1 2048 125831167 125829120 Sistem de fișiere Linux 60G
/dev/sda2 125831168 754976767 629145600 Sistem de fișiere Linux 300G
/dev/sda3 754976768 2331002879 1576026112 751.5G Sistem de fișiere Linux
/dev/sda4 2331002880 3907028991 1576026112 751.5G Sistem de fișiere Linux

Ce vreau să fac este să-mi muți sistemul RPI de pe cardul SD pe prima partiție a HDD-ului. Pot folosi următoarea comandă pentru a clona întregul card SD (două partiții) pe prima partiție a HDD-ului?

dd if=/dev/mmcblk0 of=/dev/sda1 ...

Deoarece partiția de destinație este puțin mai mare (124735488 vs 125829120 sectoare), mă aștept ca prima partiție HDD va fi împărțită în două (boot și rădăcină) și toate celelalte sda2, sda3 etc. va rămâne intactă. Deci, după această operațiune, voi putea să pornesc de pe HDD în loc de cardul SD (desigur, după verificarea tuturor UUID-urilor care se pot schimba după migrare).

Ar trebui să fie în regulă AFAIK, dar nu am posibilitatea de a testa acest proces în prezent. Așa că doriți să verificați totul și să fiți 100% sigur că nu dați peste cap întregul sistem.

upd. Da, înțeleg că conținutul sda1 va fi distrus definitiv.

Puncte:2
drapel za

Nu se așteaptă ca partițiile să aibă partiții în sine. Acesta este un sistem „un strat”, nu „arborele”. Partiția nu va fi „împărțită cu două” în mod magic, chiar dacă ar conține o tabelă de partiții validă. Nucleul nu va configura automat dispozitive bloc speciale corespunzătoare acelor subpartiții. Deci, deși cu siguranță puteți arunca întregul dispozitiv partiționat sector cu sector în orice, trebuie să faceți acțiuni manuale suplimentare pentru a accesa datele de pe acele „subpartiții” (adică, veți avea nevoie de o interpretare manuală a tabelului de partiții și o buclă). configurarea dispozitivelor).

Acestea fiind spuse, comanda pe care ați afișat-o poate distruge doar datele pentru care ați dat dovadă /dev/sda1. Nu se va atinge sda2, sda3 și așa mai departe. Nu vei pune nimic în joc cu ele, chiar dacă tu sda1 nu este suficient de mare pentru a accepta dimensiunea completă a cardului SD; în acest caz, dd se va opri cu o eroare când va întâlni sfârșitul sda1. Dar partiționarea dvs. pare să nu sufere din cauza asta.

ihorc avatar
drapel cn
Dar comanda `dd` copiază blocurile brute, așa că funcționează „un strat” sub partiții. Astfel, nici măcar nu știe ce partiție (partiții) copiază. Deci, din înțelesul meu, va lua toate blocurile de card SD și le va plasa în sectoarele marcate cu sda1 ale HDD-ului. De asemenea, deoarece funcționează cu blocuri brute, nu este nevoie să faceți nicio partițiune înainte de `dd`. Oricum va fi rescris. Scopul specificării partiției de destinație este doar acela de a specifica domeniul în care poate scrie. Acesta este același cu `dd` în fișierul img și apoi scrieți img pe o partiție. gresesc?
Nikita Kipriyanov avatar
drapel za
Ai dreptate. Am spus exact același lucru, „puteți arunca întregul dispozitiv partiționat sector cu sector în orice”.Așa că v-am explicat că nu veți putea spune boot de pe acest HDD, deoarece, în timp ce datele vor fi acolo, sistemul **nu va crea dispozitive speciale** cu sisteme de fișiere brute de montat. Nu va interpreta un tabel de partiții din cadrul partiției.
ihorc avatar
drapel cn
Deci, singura soluție disponibilă, în acest caz, este să divizați manual sda1 (la sda1 și sda5, de exemplu), apoi `dd`, respectiv, două partiții? `mmcblk0p1->sda1` și `mmcblk0p2->sda5`?
Nikita Kipriyanov avatar
drapel za
Sincer, nu am încercat niciodată să pornesc Raspberry Pi de pe alt card decât SD. Dacă poate porni de pe o partiție pe HDD USB (cred că asta este ceea ce aveți), atunci da, va funcționa. Dar observați că locația sistemului de fișiere rădăcină este stocată în `cmdline.txt`, așa că nu uitați să o ajustați. Și rețineți că HDD-ul USB are o latență mult mai mare decât cardul SD, astfel încât sistemul poate afișa performanțe mai lente ale discului.
Ginnungagap avatar
drapel gu
RaspberryPi nu poate porni de pe HDD, va citi întotdeauna partiția de pornire de pe un card SD. Cel mai bun lucru pe care îl puteți face este să vă mutați partiția rădăcină pe HDD, lăsând /boot pe cardul SD.
ihorc avatar
drapel cn
Nu este adevarat. Este posibil să găsiți o mulțime de ghiduri despre cum să mutați un sistem Raspberry Pi de pe un card SD pe un HDD/SSD extern. Există chiar și o setare separată care este responsabilă pentru prioritatea de pornire https://docs.nextcloudpi.com/en/rpi4-chnage-boot-order. Sau `sudo rpi-eeprom-config` dacă preferați linia de comandă. Și, ați putea fi surprins, există chiar și modul Network Boot. Cel puțin acest lucru este valabil pentru RPI4 cu cea mai recentă versiune de bootloader rpi-eeprom, nu știu pentru alții.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.