Jeg ved, du kan bare kopiere og indsætte NOOBS-filerne, og det fungerer, men bortset fra det for at installere andre operativsystemer på en hindbær pi eller en anden lignende enhed som odroid osv. Jeg har fået besked på at bruge terminalapplikationen “dd”, der tager meget lang tid at udføre sit job.
Jeg antager, at denne operation er mere “involveret” end bare kopiering og indsættelse? Hvorfor kan jeg ikke bare kopiere og indsætte billedet?
– kunne jeg bare montere Linux-billedet på min computer og derefter kopiere og indsætte dets indhold i microsd i stedet for at skulle bruge dd-værktøjet eller et andet “flash” -program?
EDIT: Jeg fandt lige et godt svar på dette spørgsmål her , men tænker Jeg burde holde dette spørgsmål op her, for det er sådan et klassisk noob-spørgsmål, der fortjener at blive besvaret på dette forum. Hvis nogen har mere specifikke forhold til dette svar, der direkte vedrører hindbær pi “s opstartsproces (og hvordan fungerer den NOOBS-ting ??), skal du besvare
Kommentarer
- At køre NOOBS på et nyt SD-kort tager mere end 15 minutter at opsætte partitionerne.
Svar
For at kunne besvare dette spørgsmål fuldt ud kræves der alle mulige baggrundsoplysninger. Jeg tror, jeg vil starte med et par ting, som jeg tror, du måske har misforstået.
SD-kortet (eller en lille USB-stick ) kaldes et “Flash” -drev, fordi det er navnet på “Flash” -hukommelsen , den har i sig. Når du kopierer en fil til et SD-kort , kredsløbene inde i den flytter opladninger rundt om chippen på en måde, der fortsætter, når du trækker stikket ud. (Almindelig “ Dynamic RAM ” hukommelseschips i en computer mister alt hurtigt, så snart strømmen går.) Flash-hukommelse er meget langsom at skrive til og langsom (men n ikke så langsom) at læse fra (sammenlignet med dynamisk RAM). Flash RAM “slides også”, så dele af det holder op med at arbejde efter tusindvis af læse / skrive-cyklusser.
Heldigvis for dig er det meste usynligt i praksis, så du kan lade som om et SD-kort eller Flash USB-stick ligner meget en lille harddisk eller diskettedisk. Men begge er meget forskellige fra at “brænde” en CD eller DVD.
Så prøv at glemme alt om at “blinke” oplysningerne til SD-kortet. Det, du laver, kan ikke ligesom sammenlignes med at “blinke” et computerkort eller et andet stykke elektronik, fordi du ikke behøver at gøre en særlig indsats for at ændre dataene i SD-kortets hukommelse. Dybt nede på chipsene kan det være nøjagtigt ens, men processen, du bruger, skriver til et SD-kort eller USB-nøgle er helt anderledes.
Raspberry Pi er designet til at se på SD-kortet efter en boot partition ved hjælp af et FAT-filsystem. Afhængigt af hvordan du bruger Pi, kan det være den eneste partition på SD-kortet, men et sofistikeret operativsystem som Raspbian kan muligvis ikke køre på et FAT-filsystem, så du har brug for mindst en ekstra partition (eller et separat drev) der kan håndtere linux-filer, såsom ext4-format.
Når du kører linux eller Windows eller en Mac og “kopierer” en fil fra et “monteret” filsystem til et andet, sørger operativsystemet for at oprette slette og pege på filerne, når de placeres på harddisken, flashdrevet eller hvad som helst. Filerne gemmes inde i hver partition ved hjælp af de specifikke regler for filsystemet, hvad enten det er FAT, ext4, Mac HFS + eller hvad som helst.
Når du starter med en billedfil (ofte identificeret som .iso for linux eller .dmg på en Mac), filen indeholder ALT, inklusive alle de stykker, der identificerer partitionerne og klumperne af data inde i partitionerne.
Når du bruger dd-kommandoen i linux til at kopiere en fil , det tager bitene ud af (eller ind i) en .iso PRÆCIS, da de er gemt på en disk eller et SD-kort, og ignorerer helt de partitioner, filsystemer, filer og mapper, som du og operativsystemet har brug for for at give mening om dataene på det. Det er en helt anden form for kopihandling. Hvis du bare trækker det .iso til dit SD-kort, vil du ikke kun udfylde det unødvendigt, Pi ved ikke, hvordan man skal se “inde i .iso-filen for at få det, den har brug for.
A dd-kopi tager lang tid, fordi SD-kort er langsomme, og du kopierer store stykker data ad gangen. Når alt tages i betragtning, kan det dog være hurtigere end at kopiere de enkelte filer.
Og til besvar spørgsmålet, ja, du kan montere billedet og kopiere filerne til de forskellige partitioner, men der vil næsten altid være mere end en partition, og du bliver nødt til at placere filerne de rigtige steder. Det er nemmest i mange tilfælde at bare bruge dd til at kopiere fra billedfilerne til SD-kortet.
Svar
Din brug af udtrykket “flash” her er upassende, hvis det er meningen at henvise til en kontrast; selvom SD-kort er flashhukommelse baseret, er kopiering til dem altid den samme på det niveau uanset hvilket værktøj du bruger, hvilken slags af data det er osv. Sagt på en anden måde, hvis du henviser til at kopiere data til et SD-kort som “blinkende” det, så gælder det lige så godt, uanset hvad. Hvis du vil kalde det “kopiering”, samme logik – begge de procedurer, du henviser til, involverer kopiering af data ved at “blinke” flashhukommelse. Det er SD-kortets natur; brug af klip n “indsæt vs. dd
ændrer ikke de fysiske egenskaber ved hardwaren. Men alt dette er tangentielt for dit primære spørgsmål.
Sådan NOOBS installer fungerer, er at du formaterer kortet og opretter en vfat-partition, hvor du derefter kan kopiere almindelige filer fra zipen.
Den måde, hvorpå billedbaserede installationer fungerer, er at du lavt niveau kopierer en blok for blokversion af flere partitioner direkte til kortet. Derfor behøver du ikke først formatere det; billedet indeholder de formaterede partitioner, hvoraf den første (bootpartitionen) tjener nøjagtigt det samme formål (og indeholder nogle af de samme filer, såsom den kritiske bootloader-kode) som den partition, du oprettede til NOOBS.
Hvis du downloader og installerer “lite” -versionen af NOOBS, er den kun 20 MB – men så du skal downloade et fuldt blæst operativsystem bagefter som en del af installationsprocessen. Hvis du downloader den “fulde” version, er den 700+ MB, og det tager meget længere tid at kopiere til kortet.
Hvis du downloader et enkeltstående raspbian-billede, er det ~ 2,0 GB billede, og det vil tage tilsvarende længere tid at kopiere til kortet. Derudover er dd
et manuelt, lavt niveau, filsystemuafhængigt værktøj. Dette har flere konsekvenser:
-
Det gætter ikke antagelser eller antagelser om, hvordan man gør tingene optimalt. For eksempel antages det at bruge en 4 MB blocksize (
bs=4M
) en stor forskel med hensyn til hastighed på SD-kort, men det er ikke standard og dd vil ikke forsøge at finde ud af det. Klip og indsæt via et højere niveau værktøj sandsynligvis vil, delvist baseret på information, det får ved at undersøge filsystemet du allerede har oprettet ved at formatere kortet. Imidlertid kandd
gøre ting, som de værktøjer generelt ikke kan (f.eks. skrive råblokke til en enhed, hvorfor det er nødvendigt med billedet s). -
OS kan muligvis gøre, at højere værktøj fungerer mere strømlinet via cache, hvilket det kan gøre med monterede filsystemer. Dette er grunden til, at du nogle gange må vente et stykke tid, hvis du laver en stor kopi og derefter gå til at afmontere en pind; kopien var faktisk ikke komplet, og operativsystemet frigiver det ikke, indtil det faktisk er gjort (det er også derfor, du altid skal vente, indtil operativsystemet siger, at det er okay).
dd
til en enheden ikke involverer nogen cache af denne slags. Det gøres virkelig, når det er gjort.
Svar
Som sandsynligvis allerede ved fra andre svar, skal formatet, at et SD-kort til en RPI skal indstilles til FAT32, ellers fungerer det ikke. Ulempen ved FAT32-formatet er, at det har en kopigrænse på 4 GB som i høj grad begrænser dine muligheder for hvilket operativsystem du nemt kan installere på SD-kortet. Der er dog en måde at “omgå” denne grænse, og det er ved at bruge et program som 7zip til at komprimere .img-filen til noget under 4 GB, og derefter udpakke det ved roden af SD-kortet.