USB wyłącz ochronę przed zapisem

92

Mam urządzenie USB chronione przed zapisem:

dmesg | tail

[10098.126089] sd 7:0:0:0: [sdb] Write Protect is on
[10098.126098] sd 7:0:0:0: [sdb] Mode Sense: 23 00 80 00
[10098.126779] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.126788] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.131418] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.131425] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.133335]  sdb: sdb1
[10098.135509] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.135515] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.135521] sd 7:0:0:0: [sdb] Attached SCSI removable disk

Jak mogę wyłączyć ochronę przed zapisem?

Co próbowałem

  1. Sprawdzone, czy ma przełącznik sprzętowy - nie
  2. Próbowałem sformatować go w systemie Windows i Linux (również przez terminal)
  3. Próbowałem fdisk|chmod
  4. Próbowałem to naprawić za pomocą kilku narzędzi z centrum oprogramowania Ubuntu
  5. Korzystałem z Google i widziałem około 10 000 dyskusji na temat tego problemu, ale nigdy nie zostały one rozwiązane

Dodatkowe informacje

fsck -n /dev/sdb1

fsck from util-linux 2.19.1
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
  65:01/00
  Not automatically fixing this.
Free cluster summary wrong (968250 vs. really 911911)
  Auto-correcting.
Leaving file system unchanged.
/dev/sdb1: 50 files, 93653/1005564 clusters

fdisk -l

   Device  boot.   Start        End      Blocks   Id  System
/dev/sdb1            32     8060927     4030448    b  W95 FAT32

umount /dev/sdb1

mkfs -t vfat /dev/sdb1

mkfs.vfat 3.0.9 (31 Jan 2010)
mkfs.vfat: unable to open /dev/sdb1
Nowicjusz
źródło
7
Nie mogę sformatować z powodu ochrony przed zapisem.
noob
2
@ micha - co to za urządzenie USB - oczywiście sprawdziłeś, czy ma przełącznik sprzętowy? jakieś błędy, jeśli spróbujesz go zamontować? sudo mount /dev/sdb1 -v?
fossfreedom
1
Micha, w porządku. Czy próbowałeś uruchomić efsck lub używałeś Narzędzia dyskowego Ubuntu, aby sprawdzić stan zdrowia dysku flash? Gdyby działał dobrze, a następnie nagle przestał działać, mogła wystąpić awaria sprzętu.
kingmilo,
1
@kingmilo e2fsck:Bad magic number in super-block while trying to open /dev/sdb1 SuperBlock is not readable.
noob
1
@ micha - bardzo dobrze, wciąż nie oznacza to, że nie jest wadliwe, niestety. Wygląda na to, że urządzenia pamięci działają normalnie, gdy w rzeczywistości są wadliwe, tylko na innym etapie wadliwości. Myślę, że przy całej aktywności związanej z tym pytaniem należy poprosić o niewielkie datki na wymianę dysku, byłoby łatwiej 😜
kingmilo

Odpowiedzi:

81

Aby wyłączyć ochronę przed zapisem urządzenia dyskowego, używamy narzędzia systemowego hdparm niskiego poziomu w następujący sposób:

sudo hdparm -r0 /dev/sdb

zakładamy, że /dev/sdbna fizycznym urządzeniu dyskowym pracujemy. Jeśli urządzenie ma partycje zamontowane jako tylko do odczytu, należy ponownie zamontować je jako do odczytu i zapisu, aby zapisać na nich dane.

Mam nadzieję, że to pomaga.

Angel Genchev
źródło
Jesteś moim bohaterem. Gdzie mogę się dowiedzieć, co się stało po tym magicznym poleceniu magii?
Marcos Modenesi
3
Możesz znaleźć wyjaśnienie, wpisując to polecenie tutaj> wyjaśniahell.com
bagustris
75
pokazuje, readonly = 0 (off)ale nadal nie jestem w stanie pisać ani formatować.
shyammakwana.me
1
@OP Miałem to samo co ty, czyli: sdxc zamontowane na karcie tylko do odczytu niezależnie od komputera; hdparm -rpokazuje „1 - włączony”, a następnie po odblokowaniu za pomocą r0: „0 - wyłączony”, ale i tak montuje tylko do odczytu. Ale zamontowanie mojej karty SD SanDisk w innym adapterze i mogę ją zamontować rw. Okazuje się, że dwa z moich adapterów microSD-na-SD mają przerwany pin między dwoma złączami. I ci dwaj będą montować tylko do odczytu, cokolwiek zrobię. Kuddos do @Angel_Genchev, w którym ma najwięcej odpowiedzi.
tuk0z
2
@lliseil Jest więcej niż prawdopodobne, że czytnik naciska przełącznik ochrony przed zapisem przez włożoną do niego kartę, zwykle przez zakładkę na karcie, ale przełącznik (nie zakładka) może się zgiąć i zablokować. możesz naprawić czytnik sdcard, odcinając styki przełącznika zabezpieczenia przed zapisem, które kontaktują się fizycznie z blokadą karty. Gdy przełącznik w czytniku jest otwarty, zabezpieczenie przed zapisem jest wyłączone, gdy jest zamknięte (poprzez naciśnięcie na zakładkę na karcie) zabezpieczenie przed zapisem jest włączone. Usunięcie jednego lub obu metalowych ramion przełączników na stałe wyłączy ochronę przed zapisem w czytniku.
Hydranix,
31

Po zbadaniu twojego pytania wydaje się, że jest to niezbyt częsty problem z niektórymi dyskami flash USB (niektóre starsze modele Samsunga, model Kingston), które w zasadzie po prostu „bzdurują” bez żadnego znanego powodu. Ludzie próbowali je otworzyć i przeskoczyć dwa przewody (może z niestabilnego przełącznika?) Bezskutecznie. Jeśli nadal masz ten dysk i nadal jest on objęty gwarancją, zwrócę go i otrzymam zamiennik.

Nienawidzę przekazywać ci złych wiadomości = \, ale wygląda na to, że nie masz szczęścia w tej sytuacji, ponieważ wszystko, co przeczytałem, wskazuje na awarię sprzętu.

Edytuj 27.05.2016: Niedawno wystąpił problem z dyskiem flash. W moim przypadku był to Corsair Flash Voyager 128 GB, który zaczął mnie drastycznie spowalniać. Chociaż nie pokazywał tutaj zanotowanych symptomów, czasami nie montował się i pojawiał się jako urządzenie „Silicon Power”. Było to spowodowane tym, że dysk zgromadził dużą liczbę uszkodzonych sektorów i przeszedł w tryb diagnostyczny / programowania. Ponieważ jest to jedna z moich bardziej popularnych odpowiedzi, która również należy do kategorii „awarii dysków flash”, pomyślałem, że dołączę ją tutaj w celach informacyjnych.

Chuck R.
źródło
5
@admins: Chcę wiedzieć, czy tego rodzaju odpowiedzi są dozwolone, czy nie :)
Tachyons
7
@AboobackerMk Jeśli to jest odpowiedź, to jest to odpowiedź. :)
jrg
4
@Tachyons „czy tego typu odpowiedzi są dozwolone, czy nie?” co dzieje się z osobami korzystającymi z stackexchange, które konsekwentnie dyskredytują pytania lub odpowiedzi innych osób? Ta odpowiedź jest oczywiście poprawną odpowiedzią; z tego powodu powiedział jrg.
GoProCameraByGoPro 16.04.15
@GoProCameraByGoPro, który jest 3-letnim komentarzem, moje obawy nie dotyczyły jakości odpowiedzi. i JRG już odpowiedział na moje pytanie :-)
Tachiony
@Tachyons Robię, co mogę, aby zakwestionować pretensję na temat wymiany stosów. Gdybym miał te dane, spojrzałbym na trend demograficzny ludzi, którzy to robią i prawdopodobnie mógłbym to po prostu zignorować, ale na razie będę musiał zadawać im pytania, kiedy je zobaczę.
GoProCameraByGoPro 16.04.15
20

za pomocą fdisk -lzlokalizuj dysk, tj .: / dev / sdc1

teraz

umount /dev/sdc1

Na koniec sformatuj dysk flash

sudo mkfs -t vfat /dev/sdc1

Znalazłem to szybko i łatwo. Pamiętaj, aby ODŁĄCZYĆ dysk przed próbą sformatowania.

Ringtail
źródło
2
sudo mkfs -t vfat / dev / sdc1> większość blogów mówi to, ale ludzie mówią, że to nie działa, zobaczmy, czy to działa.
One Zero
8
odmontowano ... alemkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob
zadziałało dla mnie, wystarczyło użyć -I, aby utworzyć jedną dużą partycję i zamiast / dev / sdc1, / dev / sdc.
mchid
Próbowałem wszystkich innych sposobów ( hdparm -r0, blockdev --setrw, remount,rw), ale nic nie rozwiązało mojego problemu oprócz tego!
Iman Mirzadeh
1
Mówimkfs.vfat: unable to open /dev/sdc: Read-only file system
Shayan,
14

Odpowiedź Anioła jest dobra, ale rzeczywiste polecenia nie były dla mnie takie łatwe. Oto, co zadziałało: podłącz kartę (moja to karta SD z ręcznym przełącznikiem zabezpieczenia przed zapisem, ale przełącznik jest wyłączony i można go zapisywać na komputerze z systemem Windows). Ubuntu zamontował go automatycznie na / media / andrew / 6AB0-1FD91, a dmesg pokazał, że partycja to / dev / sdb1.

Odmontuj go i spraw, aby można go było zapisać

sudo umount /dev/sdb1
sudo hdparm -r0 /dev/sdb

Utwórz nowy punkt montowania i zamontuj go tam (mój identyfikator użytkownika z / etc / passwd to 1000)

sudo mkdir /media/andrew/temp
sudo mount -o uid=1000 /dev/sdb1 /media/andrew/temp

nadal będzie narzekać, że jest to tylko do odczytu. Nie wiem, dlaczego musiałem zmienić tę flagę przed ORAZ po zamontowaniu, ale to jedyny sposób, który zadziałał dla mnie. Ustaw ponownie na zapisywalny i podłącz ponownie w tym samym miejscu

sudo hdparm -r0 /dev/sdb1
sudo mount -o remount,rw /dev/sdb1

Teraz mogę pisać na dysk jako mój normalny użytkownik. Jestem bardzo ostrożny na wypadek, gdyby rzeczywiście zawiódł, ale te polecenia pozwoliły mi dokończyć to, co robiłem.

Andrew Lorien
źródło
UWAGA: moja karta faktycznie zawiodła (Ubuntu montuje ją tylko do odczytu, ale mój aparat z przyjemnością zapisuje na niej). Kilka miesięcy później powoduje to uszkodzenie plików - zachowaj ostrożność, dopóki to zadziała!
andrew lorien
Próbowałem dostać się do twojego standardu .... # sudo mount -o uid = 1000 / dev / sdc1 / mnt / Can only open '/ dev / sdc1' only only read Dysk zawiera nieczytelny system plików (0, 0). System plików nie został bezpiecznie zamknięty w systemie Windows. Ustalenie.
Ashish Karpe
1
to działało dla mnie i żadne z powyższych ...
Pierre
1
Działało to po wypróbowaniu wielu rozwiązań. Dzięki @andrewlorien
Abk
6

Żadna z podanych do tej pory odpowiedzi nie jest poprawna.

Aby faktycznie działało, możesz zastąpić wykrywanie dysku USB, który ogłasza, że ​​jest tylko do odczytu, z ustawieniem dziwactwa USB. Oto jak to działa.

1) Podłącz urządzenie USB i wykonaj lsusbprzykład:

$ lsusb
Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 

2) Zwróć uwagę na te dwa kody między dwukropkami (zwane idVendori idProduct). Odłącz urządzenie USB.

3) Usuń usb_storagemoduł jądra (zakładając, że jest skompilowany jako moduł)

$ sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage

4) Teraz ponownie wprowadzimy moduł w tryb dziwactwa, aby zastąpić wykrywanie flagi tylko do zapisu urządzenia.

Z source / drivers / usb / storage / usb.c # L572 pobranych z wersji 4.19 widać, że szukamy ustawienia trybu dziwactwa w. Oto jak ponownie załadujemy moduł jądra:

$ sudo modprobe usb_storage quirks=0781:5583:w

Zamień liczby między dwukropkami na te, które widziałeś w kroku (1) z góry.

5) podłącz ponownie urządzenie pamięci USB. Możemy teraz potwierdzić za pomocą dmesg, że to zadziałało:

Przed: zepsuty tylko do zapisu

I po: pracujący odczyt / zapis

Również po wydaniu polecenia montowania zobaczysz:

/dev/sdb1 on /usb type ext4 (rw,relatime)

Teraz idź natychmiast zabrać swoje rzeczy z tego dysku, to się nie udaje.

kristopolous
źródło
Dziękuję bardzo za tę odpowiedź. Miałem problem z kartą Compact Flash w czytniku USB, która wydawała się być chroniona przed zapisem i jest to jedyne znalezione rozwiązanie, które to rozwiązuje. Dziwne jest to, że inne karty CF działają dobrze.
njh
1

To trochę kłopotliwe.

Próbowałem wszystkiego tutaj i gdzie indziej i nic nie działało.

Sformatowany na laptopie Windows znajomego, działa teraz dobrze. FFS!

Westchnienie ... (zastanawiasz się teraz, czy mógłbym to naprawić w mojej maszynie Wirtualnej Win 7 na pulpicie Mint?).

Tracy LF
źródło
-1

Włóż kartę pamięci i rozpocznij łączenie. Wybierz go za pomocą przycisku w prawym górnym rogu. Powinno być oczywiste, jeśli sprawdzasz swoją pamięć (rozmiar to dobra wskazówka). Wybierz Partycja -> odmontuj.

Wybierz „Urządzenie” u góry, a następnie „Utwórz tablicę partycji” i wybierz wartość domyślną, czyli msdos.

Teraz powinieneś być w stanie utworzyć nową partycję i sformatować ją f32. Jeśli nie możesz, to prawdopodobnie popiersie.

HTH

Vic
źródło
6
Partycji nie można edytować ze względu na ochronę przed zapisem.
noob