Ik weet dat je de NOOBS-bestanden gewoon kunt kopiëren en plakken en het werkt, maar afgezien daarvan, om andere besturingssystemen op een raspberry pi of een ander soortgelijk apparaat zoals odroid, enz., Ik heb de opdracht gekregen om de “dd” terminaltoepassing te gebruiken die erg lang duurt om zijn werk te doen.
Ik neem aan dat deze handeling meer “betrokken” is dan alleen kopiëren en plakken? Waarom kan ik de afbeelding niet gewoon kopiëren en plakken?
– Kan ik de linux-afbeelding gewoon op mijn computer mounten en de inhoud vervolgens kopiëren en in de microsd plakken in plaats van de dd-tool of een andere “flash” -toepassing?
EDIT: ik heb net een goed antwoord op deze vraag hier gevonden, maar ik denk Ik zou deze vraag hier moeten voortzetten, want het is zon klassieke noob-vraag die het verdient om op dit forum te worden beantwoord. Als iemand meer details heeft over dit antwoord dat direct verband houdt met het opstartproces van de Raspberry Pi (en hoe werkt dat NOOBS-ding ??), beantwoord dan alstublieft
Opmerkingen
- NOOBS draaien op een nieuwe SD-kaart duurt meer dan 15 minuten om de partities in te stellen.
Antwoord
Om deze vraag volledig te beantwoorden heb je allerlei achtergrondinformatie nodig. Ik denk dat ik zal beginnen met een paar dingen waarvan ik denk dat je ze verkeerd hebt begrepen.
De SD-kaart (of een kleine USB-stick ) wordt een “Flash” -station genoemd omdat dat de naam is van het “Flash” -geheugen dat erin zit. Wanneer u een bestand naar een SD-kaart kopieert , verplaatsen de circuits erin de ladingen rond de chip op een manier die blijft bestaan als je de stekker uit het stopcontact haalt. (Gewone “ Dynamisch RAM ” -geheugenchips in een computer verliezen alles snel zodra de stroom uitvalt.) Flash-geheugen is erg traag om naar te schrijven, en traag (maar n iet zo langzaam) om uit te lezen (vergeleken met Dynamic RAM). Flash RAM is ook “versleten”, dus na duizenden lees- / schrijfcycli stopten delen ervan met werken.
Gelukkig voor jou is het meeste daarvan in de praktijk onzichtbaar, dus je kunt net doen alsof een SD-kaart of Flash USB-stick erg lijkt op een kleine harde schijf of floppy disk. Maar beide verschillen nogal van het “branden” van een cd of dvd.
Dus probeer te vergeten dat de informatie naar de SD-kaart wordt “geflitst”. Wat je doet is niet echt vergelijkbaar met het “flashen” van een computermoederbord of een ander stuk elektronica, omdat je geen speciale moeite hoeft te doen om de gegevens in het geheugen van de SD-kaart te wijzigen. Diep in de chips is het misschien precies hetzelfde, maar het proces dat je gebruikt om naar een SD-kaart of USB-stick te schrijven is heel anders.
De Raspberry Pi is ontworpen om op de SD-kaart te kijken voor een boot partitie met behulp van een FAT-bestandssysteem. Afhankelijk van hoe je de Pi gebruikt, is dat misschien de enige partitie op de SD-kaart, maar een geavanceerd besturingssysteem zoals Raspbian kan onmogelijk op een FAT-bestandssysteem draaien, dus je hebt minstens één extra partitie nodig (of een aparte schijf) die linux-bestanden aankan, zoals ext4-formaat.
Als u Linux of Windows of een Mac gebruikt en een bestand “kopieert” van het ene “aangekoppelde” bestandssysteem naar het andere, zorgt het besturingssysteem voor het aanmaken van , verwijderen en verwijzen naar de bestanden terwijl ze op de harde schijf, flashdrive of wat dan ook worden geplaatst. De bestanden worden in elke partitie opgeslagen met behulp van de regels die specifiek zijn voor het bestandssysteem, of het nu FAT, ext4, Mac HFS + of wat dan ook is.
Als je begint met een afbeeldingsbestand (vaak aangeduid als .iso voor linux of .dmg op een Mac), bevat het bestand ALLES, inclusief alle stukjes die de partities en de brokken gegevens in de partities identificeren.
Wanneer je het dd-commando in linux gebruikt om een bestand te kopiëren , het haalt de bits uit (of in) een .iso PRECIES zoals ze zijn opgeslagen op een schijf of een SD-kaart, waarbij de partities, bestandssystemen, bestanden en mappen die jij en het besturingssysteem nodig hebben om de gegevens te begrijpen, volledig worden genegeerd erop. Het is een heel ander soort kopieerbewerking. Als je die .iso naar je SD-kaart sleept, vul je hem niet alleen onnodig in, maar de Pi weet ook niet hoe hij “in” het .iso-bestand moet kijken om te krijgen wat hij nodig heeft.
A Het kopiëren van dd duurt erg lang omdat SD-kaarten traag zijn en u grote hoeveelheden gegevens tegelijk kopieert. Als alles is afgeschreven, kan het echter sneller zijn dan het kopiëren van de afzonderlijke bestanden.
En om beantwoord de vraag, ja, je zou de afbeelding kunnen mounten en de bestanden naar de verschillende partities kunnen kopiëren, maar er zullen bijna altijd meer dan één partitie zijn en je zult de bestanden op de juiste plaatsen moeten plaatsen. Het is in veel gevallen het gemakkelijkst om gewoon dd te gebruiken om van de afbeeldingsbestanden naar de SD-kaart te kopiëren.
Antwoord
Uw gebruik van de term “flash” hier is ongepast als het bedoeld is om naar een contrast te verwijzen; hoewel SD-kaarten zijn flash-geheugen gebaseerd, is het kopiëren naar deze kaarten altijd hetzelfde op dat niveau, ongeacht welke tool je gebruikt, wat voor soort van gegevens is het, enz. Anders gezegd: als je het kopiëren van gegevens naar een SD-kaart omschrijft als “knipperen”, dan is dat hoe dan ook even goed van toepassing. Als u het “kopiëren” wilt noemen, dezelfde logica – beide procedures waarnaar u verwijst, waarbij gegevens worden gekopieerd door het flash-geheugen te “knipperen”. Dat is de aard van SD-kaarten; het gebruik van cut n “paste vs. dd
verandert niets aan de fysieke kenmerken van de hardware. Maar dit alles raakt aan uw primaire vraag.
De manier waarop de NOOBS installeren werkt als je de kaart formatteert en een vfat-partitie maakt waarnaar je vervolgens gewone bestanden uit de zip kunt kopiëren.
De manier waarop de op afbeeldingen gebaseerde installaties werken, is dat je een blok voor blokversie op laag niveau kopieert van meerdere partities rechtstreeks naar de kaart. Dit is waarom je het niet eerst hoeft te formatteren; die afbeelding bevat de geformatteerde partities, waarvan de eerste (de opstartpartitie) precies hetzelfde doel dient (en enkele van dezelfde bestanden, zoals de kritieke bootloadercode) als de partitie die je voor NOOBS hebt gemaakt.
Als je de “lite” -versie van NOOBS downloadt en installeert, is deze slechts 20 MB – maar dan u moet daarna een volledig besturingssysteem downloaden als onderdeel van het installatieproces. Als u de “volledige” versie downloadt, is deze 700+ MB en zal het veel langer duren om naar de kaart te kopiëren.
Als u een zelfstandige Raspbian-afbeelding downloadt, is deze ~ 2,0 GB afbeelding, en het zal overeenkomstig langer duren om naar de kaart te kopiëren. Bovendien is dd
een handmatige, low-level, bestandssysteemonafhankelijke tool. Dit heeft verschillende gevolgen:
-
Het doet geen gissingen of veronderstellingen over hoe dingen optimaal te doen. Als u bijvoorbeeld een blokgrootte van 4 MB gebruikt (
bs=4M
) een groot verschil met betrekking tot snelheid op SD-kaarten, maar dat is niet de standaard en dd zal dat niet proberen te achterhalen. Knippen en plakken via een tool van een hoger niveau zal dat waarschijnlijk wel doen, gedeeltelijk gebaseerd op de informatie die het krijgt door het bestandssysteem te onderzoeken. > je hebt al gemaakt door de kaart te formatteren.dd
kan echter dingen doen die die tools over het algemeen niet kunnen (zoals het schrijven van onbewerkte blokken naar een apparaat, daarom is nodig met de afbeelding s). -
Het besturingssysteem kan de werking van hogere tools meer gestroomlijnd laten lijken via caching, wat het kan doen met aangekoppelde bestandssystemen. Daarom moet je soms even wachten als je een grote kopie maakt en dan een stick gaat ontkoppelen; de kopie was niet echt compleet en het besturingssysteem geeft het pas vrij als het klaar is (dit is ook waarom je altijd moet wachten tot het besturingssysteem zegt dat het in orde is).
dd
naar een apparaat vereist geen caching van dit soort. Het is echt klaar als het klaar is.
Antwoord
Zoals waarschijnlijk al bekend is uit andere antwoorden, is het formaat dat een SD-kaart voor een RPI moet worden ingesteld op FAT32, anders werkt het niet. Het nadeel van het FAT32-formaat is dat het een kopieerlimiet heeft van 4GB, wat uw mogelijkheden aanzienlijk beperkt van welk besturingssysteem u gemakkelijk op de SD-kaart kunt installeren. Er is echter een manier om deze limiet te omzeilen, en het is door een programma zoals 7zip te gebruiken om het .img-bestand te comprimeren naar iets kleiner dan 4GB, en het vervolgens uitpakken in de root van de SD-kaart.