Skriv Beskyttet Pendrive på Linux

skrivebeskyttet pendrive

Hvis du har et SD-hukommelseskort, et flashdrev eller en hvilken som helst USB-lagerdisk, du ønsker skrive beskytte, i denne artikel fortæller vi dig trin for trin og nemt, hvordan du gør det. Og det er, at der er en smule antiwrite-beskyttelse, som visse drivere tillader, kendt som «skrivebeskyttelsesbit» som, afhængigt af om den er aktiv ved 1 eller 0, vil tillade skrivning til enheden eller ej. Forveksle ikke denne bit med CPU-flagregistrenes WP, som forhindrer overskrivning ved at skabe en gaffelproces på UNIX-lignende systemer, og dermed beskytter hovedhukommelsen mod dataskrivning. Hverken til den typiske beskyttelsesfane, som vi finder på nogle SD-kort eller lagermedier. I dette tilfælde refererer vi til en beskyttelse, der er implementeret i det sekundære lagermedie.

Mens controlleren af lagringsmedie USB eller SD hukommelseskort, eller hvilket som helst medium, registrerer at denne bit er aktiv, driveren vil forhindre kernen i at bestille en skriveordre og derfor vil den kun kunne læse indholdet fra den. Det er helt sikkert meget praktisk, når vi gemmer data, som vi ikke ønsker at blive ændret, og undgår at skrive eller slette ved en fejl. Men hvis et af disse beskyttede medier er faldet i vores hænder, og vi er uvidende om eksistensen af ​​denne bit, kan vi spilde timer på at tænke på, at vores enhed er beskadiget, eller gå op og ned på fanen, som nogle flashdrev eller SD-kort skal beskytte dem uden noget resultat (Lås/Lås op)...

Monter et skrivebeskyttet eller skrivbart medie:

SD-kort med låsefane

Selvom det ikke lige er det, vi leder efter med Write Protection Bit, kan vi også konstatere, at et medie har været det monteres automatisk eller manuelt skrivebeskyttet, så vi vil ikke have mulighed for at skrive til den. Noget der i nogle tilfælde kan være meget irriterende og forhindre os i at ændre eller gemme ting. Nå, løsningen på dette er meget enkel.

relateret artikel:
Deaktiver USB-lagring i Linux

For eksempel, hvis enheden i filen /etc/fstab er konfigureret til automatisk at blive monteret med muligheden ro (skrivebeskyttet) eller hvis vi har monteret det med kommandoen:

sudo mount -o ro /dev/sda /mnt

I et sådant tilfælde kan vi kun læse /dev/sda-enheden i dette tilfælde, som er blevet monteret på /mnt-monteringspunktet. Så vi kan skrive til det igen:

sudo mount -o remount,rw /dev/sda /mnt

I tilfælde af at denne metode ikke virker for dig, så vil det være, fordi den bit, vi har talt om, er skuespil, og derfor bliver vi nødt til at bruge det værktøj, som vi præsenterer nedenfor.

Hvad er hdparm?

Harddisk med operatører

Kommandoen hdparm er et værktøj på lavt niveau som fungerer som en grænseflade mellem forskellige Linux-kernedrivere og SATA/PATA/SAS-lagringsmedier via libata-biblioteket, samt til gamle IDE-medier. Husk, at mange USB-lagermediecontrollere, inklusive kortlæsere såsom SD, også bruger denne type controller til at betjene, så den er også kompatibel med dem.

Su grundlæggende syntaks Det er:

hdparm [indstillinger] [enhed]

Og gaver mange muligheder at arbejde med, selvom jeg ikke anbefaler, at du bruger dem, hvis du ikke ved, hvad du laver, da du er et værktøj på lavt niveau, kan beskadige din enhed alvorligt, for eksempel hvis vi manipulerer nogle kritiske muligheder såsom -B. Men jeg vil fortælle dig, at der blandt dens muligheder er nogle ret interessante, såsom:

  • Hent konfiguration af disken:
sudo hdparm /dev/sdd

  • Vis identifikation af disken:
 sudo hdparm -i /dev/sdd 
  • Tjek buffer- og cachelæsetider:
sudo hdparm -t /dev/sdd
sudo hdparm -T /dev/sdd

Husk altid at bruge privilegierne, det vil sige at køre dem som root-bruger eller sætte sudo foran dem, ellers virker de ikke...

Ryd og indstil hukommelsesbeskyttelsesbitten med hdparm:

Når hdparm-værktøjet er kendt, kan vi bruge -r-indstillingen, hvormed vi kan kontrollere status for denne bit med en simpel kommando. For at gøre dette behøver vi kun at kende det fysiske navn på vores lagerenhed. For eksempel, hvis det hed /dev/sdd, så kunne vi bruge:

 sudo hdparm -r /dev/sdd 

Og værdien af ​​nævnte bit vil blive vist på skærmen. Hvis dens værdi er 1, betyder det, at tilstanden er aktiv. Læs kun eller skrivebeskyttet, eller med andre ord, skrivebeskyttelsesmetoden er aktiv, og du vil ikke være i stand til at skrive noget til hukommelsen. For at deaktivere den eller ændre bit, skal du blot gøre følgende:

sudo hdparm -r0 /dev/sdd

Og nu, hvis vi udfører den første kommando og kontrollerer status, vil vi se, at den er vendt tilbage til 0, derfor er skrivebeskyttet tilstand slået fra eller deaktiveret. Hvis du vil vende tilbage til den aktive tilstand, skal du bruge indstillingen -r1 i stedet for -r0 og klar. For eksempel:

sudo hdparm -r1 /dev/sdd

Det er simpelt slå denne bit til eller fra. Det er ikke for mystisk, men for dem, der ikke ved, kan dette være en hovedpine, når det kommer til at fjerne beskyttelsen af ​​dine lagermedier.

Jeg håber, det har hjulpet dig, og nu ved du, hvordan du laver et skrivebeskyttet flashdrev, glem det ikke efterlad din kommentars ...


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Hernán sagde han

    Hej!
    Først og fremmest tak for bemærkningerne! De er altid meget nyttige.

    Jeg er Debian 9-bruger.
    I dette særlige tilfælde har jeg et problem, som jeg ikke kan løse. Jeg har en "inficeret" pen med skrivebeskyttelse, som jeg IKKE kan fjerne. Jeg tænker allerede, at det er noget fysisk, fordi jeg ærligt talt har prøvet alt (selv lav-niveau formatering i Windows eller redningsdiske, ændring af partitioner osv.) og ingenting.

    Jeg troede, jeg var ved at løse det, da jeg fulgte dine trin, fandt jeg ud af, at skrivebeskyttelsen af ​​flashdrevet var "til", men når jeg først ændrede det til "fra", kan jeg stadig ikke slette eller ændre noget på det.

    Hvilket kan være? Er der nogen anden måde at løse dette på? (Jeg har ikke noget imod at miste de oplysninger, jeg har indeni)

    På forhånd tak for din hjælp.

    Hernán

    1.    paco sagde han

      Hej gode! Jeg ved ikke, om de fortalte dig løsningen eller i sidste ende du løste den, men jeg er i samme sag som dig.
      Kan du rådgive mig?
      Mange tak.

  2.   williams salgado sagde han

    god forklaring

  3.   Sergio sagde han

    Hej Jeg har en USB, som systemet ikke genkender, jeg sender dig oplysningerne, hvis du kan hjælpe mig tak

    dmesg

    [83384.348839] usb 1-1: nyt højhastigheds USB-enhed nummer 8 ved hjælp af ehci-pci
    [83384.506219] usb 1-1: Ny USB-enhed fundet, idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
    [83384.506225] usb 1-1: Nye USB-enhedstrenge: Mfr = 1, Produkt = 2, Serienummer = 0
    [83384.506228] usb 1-1: Produkt: USB-masselagring
    [83384.506231] usb 1-1: Producent: GENERIC
    [83384.506848] usb-lager 1-1: 1.0: USB masselagerenhed fundet
    [83384.508235] scsi host5: USB-lager 1-1: 1.0
    [83385.524951] scsi 5:0:0:0: Direkte adgang GENERIC USB-masselager 1.00 PQ: 0 ANSI: 2
    [83385.556757] sd 5: 0: 0: 0: Vedhæftet scsi generisk sg3 type 0
    [83385.561706] sd 5: 0: 0: 0: [sdc] Vedhæftet SCSI-flytbar disk

    root @ localhost: ~ # fdisk -l
    Disk / dev / sda: 698.7 GiB, 750156374016 bytes, 1465149168 sektorer
    Enheder: sektorer af 1 * 512 = 512 bytes
    Sektorstørrelse (logisk / fysisk): 512 bytes / 4096 bytes
    I / O-størrelse (minimum / optimal): 4096 bytes / 4096 bytes
    Diskmærketype: gpt
    Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC

    Enhed Start Slut Sektorer Størrelse Type
    /dev/sda1 2048 1050623 1048576 512M EFI-system
    /dev/sda2 1050624 49879039 48828416 23.3G Linux-filsystem
    /dev/sda3 49879040 69410815 19531776 9.3G Linux-filsystem
    /dev/sda4 69410816 76107775 6696960 3.2G Linux swap
    /dev/sda5 76107776 80013311 3905536 1.9G Linux-filsystem
    /dev/sda6 80013312 1465147391 1385134080 660.5G Linux-filsystem

    root @ localhost: ~ # fdisk -l / dev / sdc
    fdisk: kan ikke åbne / dev / sdc: Intet medium fundet

    root@localhost:~# hdparm /dev/sdc

    / dev / sdc:
    SG_IO: dårlige/manglende sansedata, sb[]: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    multicount = 0 (fra)
    skrivebeskyttet = 0 (fra)
    readahead = 256 (til)

    root@localhost:~# hdparm -C /dev/sdc

    / dev / sdc:
    drevtilstand er: standby

    root@localhost:~# hdparm -I /dev/sdc

    / dev / sdc:
    SG_IO: dårlige/manglende sansedata, sb[]: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    ATA-enhed med ikke-flytbare medier
    Standarder:
    Brugt sandsynligvis: 1
    Konfiguration:
    Logisk max strøm
    cylindre 0 0
    hoveder 0 0
    sektorer/spor 0 0

    Logisk/fysisk sektorstørrelse: 512 bytes
    enhedsstørrelse med M = 1024*1024: 0 MBytes
    enhedsstørrelse med M = 1000*1000: 0 MBytes
    cache/bufferstørrelse = ukendt
    Capabilities:
    IORDY ikke sandsynligt
    Kan ikke udføre dobbeltordet IO
    R / W flere sektoroverførsler: understøttes ikke
    DMA: understøttes ikke
    IOP: pio0

  4.   dekstre sagde han

    Tak for din hjælp, nu var jeg i stand til at finde ud af, om min usb var imod skrivning, og jeg bekræftede, at den ikke var imod skrivning, så dette er allerede en formateringsløsning på lavt niveau, jeg må tilføje, at virussen fik usb'en til at afbryde forbindelsen på et minut eller to og ikke tillod den at virke, den efterlod ikke tid, så da jeg allerede vidste, hvilket navn, jeg tildelte den som "sdc" som root-bruger, satte jeg alt i terminalen.
    # dd if=/dev/nul |pv| dd of=/dev/sdc bs=1M her venter du et stykke tid
    # dd if=/dev/nul |pv| dd of=/dev/sdc bs=446 count=1 du tager ud og sætter usb'en igen du giver den
    # mkfs.vfat -F 32 -n "anaconda" /dev/sdc og færdig

  5.   MGT sagde han

    Parabener! En de voltas dei med dette emne skal give din forklaring. Moi taknemmelig.

  6.   Victor sagde han

    Store. Mange tak.

  7.   Iori sagde han

    Endelig noget, der virkelig virkede for mig, tak.

  8.   ophøre sagde han

    Hej, jeg har en 16 GB ADATA microsd-hukommelse kategori 10

    Jeg udførte proceduren, og den ser ud til at virke, men når jeg genindsætter den og kontrollerer status igen, går den tilbage til skrivebeskyttet.

    Jeg har prøvet at formatere det, men det virker ikke. Det jeg kan se er mine filer.

    Er der et andet værktøj eller en måde at løse problemet på?

  9.   Jose sagde han

    Nemt og kortfattet, perfekt al forklaring og eksempler, det har været meget nyttigt for mig.

  10.   Miguel Angel sagde han

    Hej, jeg er bruger af Kali Linux, i dens seneste version har jeg allerede prøvet en milliard teknikker (undskyld for at være overdrevet), men ingen virker for mig på Linux eller Windows

  11.   danikardone sagde han

    i mit tilfælde, debian, skal den flytbare hukommelse afmonteres...

  12.   JR sagde han

    Fint, tak
    Det er lykkedes mig at gendanne adskillige salgsfremmende ekstraherbare elementer med dine instruktioner

  13.   Jero sagde han

    Hej, det virker, men brugerens mappe varierer, det ville være rart, hvis de præciserede det, men jeg har en fejl, i kommandoen viser det mig, at jeg har ændret den, men når jeg vil lægge en mappe eller hvad som helst på flashdrevet, fortæller den mig, at den er skrivebeskyttet. Hvis du kan hjælpe mig med at løse det, ville det være fantastisk. Vær hilset

  14.   oriel sagde han

    den accepterer kommandoen og viser den som ubeskyttet er r=0, men når jeg vil formatere, fortæller den mig beskyttet. tak skal du have

  15.   William R Larreal G sagde han

    Hej god morgen. Med dette havde jeg ikke prøvet, men i Windows har jeg gjort alt og intet. Mit flashdrev er skrivebeskyttet, selv med sudo hdparm -r /dev/sdd giver det værdi 1, men med sudo hdparm -r0 /dev/sdd kunne det heller ikke fjerne skrivebeskyttelsen. Tak og hilsner fra Venezuela.
    Min Linux-version er openSUSE Tumbleweed 15.3

  16.   Carlos AG Ramos sagde han

    Information videregivet med klarhed og pålidelighed. Jeg brugte timer på at teste et semi-antal af løsninger, og denne, præsenteret her, er den definitive til problemet med kun læsetilstand og blokering af optagelse.

  17.   LUIS sagde han

    Fremragende bidrag, alt gik som du nævnte...tak

  18.   Uziel sagde han

    Mange tak, meget nyttigt, dette sker normalt meget i USB, løsningen er nem og hurtig.

  19.   Lorenzo sagde han

    Mange tak for bidraget.
    I mit tilfælde accepterer Ubuntu 23.4 alle kommandoerne, men låser ikke beskyttelsesbitten op.
    Nogen ideer?

    lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r /dev/sdc
    [sudo] adgangskode til Lawrence:

    / dev / sdc:
    skrivebeskyttet = 1 (til)
    lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r0 /dev/sdc

    / dev / sdc:
    indstilling skrivebeskyttet til 0 (fra)
    skrivebeskyttet = 1 (til)
    lorenzo@lorenzo-B85M-D3H:~$

    Tak