Jag vet att du bara kan kopiera och klistra in NOOBS-filerna så fungerar det, men bortsett från det för att installera andra operativsystem på en hallon pi eller någon annan liknande enhet som odroid, etc, jag har instruerats att använda terminalapplikationen ”dd” som tar mycket lång tid att göra sitt jobb.
Jag antar att den här åtgärden är mer ”involverad” än bara kopiera och klistra in? Varför kan jag inte bara kopiera och klistra in bilden?
– kunde jag bara montera linux-bilden på min dator och sedan kopiera och klistra in dess innehåll i microsd istället för att behöva använda dd-verktyget eller något annat ”flash” -program?
EDIT: Jag hittade precis ett bra svar på denna fråga här , men tänker Jag borde hålla den här frågan uppe här eftersom den är en så klassisk noob-fråga som förtjänar att besvaras på detta forum. Om någon har mer detaljer om det här svaret som direkt hänför sig till hallprocessens startprocess (och hur fungerar den NOOBS-saken ??), svara
Kommentarer
- Att köra NOOBS på ett nytt SD-kort tar mer än 15 minuter att konfigurera partitionerna.
Svar
För att helt kunna svara på den här frågan krävs all slags bakgrundsinformation. Jag tror att jag kommer att börja med ett par saker som jag tror att du kanske har missförstått.
SD-kortet (eller ett litet USB-minne ) kallas en ”Flash” -enhet eftersom det är namnet på ”Flash” -minnet den har i sig. När du kopierar en fil till ett SD-kort , kretsarna inuti den flyttar laddningar runt chipet på ett sätt som kommer att bestå när du kopplar ur det. (Vanliga ” Dynamic RAM ” minneskort i en dator förlorar allt snabbt så snart strömmen går.) Flashminnet är mycket långsamt att skriva till och långsamt (men n inte så långsam) att läsa från (jämfört med dynamiskt RAM). Flash RAM ”slits också ut”, så efter tusentals läs / skrivcykler slutar delar av det att fungera.
Lyckligtvis för dig är det mesta osynligt i praktiken, så du kan låtsas som ett SD-kort eller Flash USB-minne liknar en liten hårddisk eller diskett. Men båda skiljer sig ganska från att ”bränna” en CD eller DVD.
Så försök att glömma att ”blinka” informationen till SD-kortet. Det du gör är inte exakt jämförbart med att ”blinka” ett moderkort på datorn eller någon annan elektronik, eftersom du inte behöver anstränga dig särskilt för att ändra data i SD-kortets minne. Längst ner på chipsen kan det vara exakt lika, men processen du använder för att skriva till ett SD-kort eller USB-minne är helt annorlunda.
Raspberry Pi har utformats för att leta efter en SD-kort för en start partition med ett FAT-filsystem. Beroende på hur du använder Pi kan det vara den enda partitionen på SD-kortet, men ett sofistikerat operativsystem som Raspbian kan omöjligt köras på ett FAT-filsystem, så du behöver minst en ytterligare partition (eller en separat enhet) som kan hantera Linux-filer, till exempel ext4-format.
När du kör Linux eller Windows eller en Mac och ”kopierar” en fil från ett ”monterat” filsystem till ett annat, tar operativsystemet hand om att skapa , tar bort och pekar på filerna när de läggs på hårddisken, flash-enheten eller vad som helst. Filerna lagras i varje partition med de specifika reglerna för filsystemet, oavsett om det är FAT, ext4, Mac HFS + eller vad som helst.
När du börjar med en bildfil (ofta identifierad som .iso för Linux eller .dmg på en Mac) innehåller filen ALLT, inklusive alla delar som identifierar partitionerna och bitar av data inuti partitionerna.
När du använder dd-kommandot i linux för att kopiera en fil tar det bitarna ur (eller in i) en .iso EXAKT när de lagras på en disk eller ett SD-kort, och ignorerar helt partitionerna, filsystemen, filerna och katalogerna som du och operativsystemet behöver för att förstå data på den. Det är en helt annan typ av kopieringsoperation. Om du bara drar det .iso till ditt SD-kort kommer du inte bara att fylla det i onödan, Pi vet inte hur man ska ”se” inuti .iso-filen för att få vad den behöver.
A dd-kopiering tar lång tid eftersom SD-kort är långsamma och du kopierar stora bitar av data åt gången. När allt redovisas kan det dock vara snabbare än att kopiera de enskilda filerna.
Och att svara på frågan, ja, du kan montera bilden och kopiera filerna till de olika partitionerna, men det kommer nästan alltid att finnas mer än en partition och du måste placera filerna på rätt platser. Det är lättast i många fall att bara använda dd för att kopiera från bildfilerna till SD-kortet.
Svar
Din användning av termen ”blixt” här är olämplig om den är avsedd att referera till en kontrast; även om SD-kort är flashminne , är kopiering till dem alltid densamma på den nivån oavsett vilket verktyg du använder, vilken typ av data det är, etc. På ett annat sätt, om du hänvisar till att kopiera data till ett SD-kort som ”blinkande”, så gäller det lika bra oavsett vad. Om du vill kalla det ”kopiering”, samma logik – båda procedurerna som du hänvisar till involverar kopiering av data genom att ”blinka” flashminne. Det är SD-kortens natur; att använda klipp n ”klistra in mot dd
ändrar inte maskinvarans fysiska egenskaper. Men allt detta är tangentiellt för din primära fråga.
Hur NOOBS installerar fungerar är att du formaterar kortet och skapar en vfat-partition där du sedan kan kopiera vanliga filer från zip.
Det sätt som bildbaserade installationer fungerar är att du på låg nivå kopierar ett block för blockversion av flera partitioner direkt till kortet. Det är därför du inte behöver formatera det först; den bilden innehåller de formaterade partitionerna, varav den första (startpartitionen) tjänar exakt samma syfte (och innehåller några av samma filer, till exempel den kritiska startladdarkoden) som den partition du skapade för NOOBS.
Om du laddar ner och installerar ”lite” -versionen av NOOBS är det bara 20 MB – men då Du måste hämta ett fullständigt operativsystem efteråt som en del av installationsprocessen. Om du laddar ner den ”fullständiga” versionen är den 700+ MB och det tar mycket längre tid att kopiera till kortet.
Om du laddar ner en fristående raspbian-bild är det ~ 2,0 GB bilden, och det tar motsvarande längre tid att kopiera till kortet. Dessutom är dd
ett manuellt, filnivåoberoende verktyg på låg nivå. Det har flera konsekvenser:
-
Det gör inga gissningar eller antaganden om hur man gör saker optimalt. Till exempel, förmodligen att använda en 4 MB blockstorlek (
bs=4M
) kommer att göra en stor skillnad med avseende på hastighet på SD-kort, men det är inte standard och dd kommer inte att försöka räkna ut det. Klipp och klistra in via ett verktyg på högre nivå kommer sannolikt att, delvis baserat på information det får genom att undersöka filsystemet du har redan skapat genom att formatera kortet.dd
kan dock göra saker som de här verktygen i allmänhet inte kan (t. ex. skriva råblock till en enhet, det är därför det är nödvändigt med bilden s). -
Operativsystemet kan göra att högre verktyg fungerar mer strömlinjeformade via cachning, vilket det kan göra med monterade filsystem. Det är därför du ibland måste vänta ett tag om du gör en stor kopia och sedan går för att lossa en pinne; kopian var faktiskt inte komplett, och operativsystemet släpper inte det tills det är klart (det är också därför du alltid ska vänta tills operativsystemet säger att det är okej).
dd
till en Enheten innebär ingen cachning av det här slaget. Det görs verkligen när det är klart.
Svar
Som förmodligen redan vet från andra svar, ska formatet att ett SD-kort för en RPI ställas in på FAT32, annars fungerar det inte. Nackdelen med FAT32-formatet är att det har en kopieringsgräns på 4 GB, vilket mycket begränsar dina möjligheter till vilket operativsystem du enkelt kan installera på SD-kortet. Det finns dock ett sätt att ”kringgå” denna gräns, och det är genom att använda ett program som 7zip för att komprimera .img-filen till något under 4 GB och sedan extrahera det vid roten till SD-kortet.