Forum Linux.pl

Sprzęt => Inne urządzenia => Wątek zaczęty przez: Tadzio_88 w 2013-06-01, 20:23:44

Tytuł: Brak dostępu do karty SD.
Wiadomość wysłana przez: Tadzio_88 w 2013-06-01, 20:23:44
Dzień dobry!
Posiadam kartę micro SD i nie mam do niej praw dostępu gdy wkładam do adaptora a później do czytnika kart.
Po zamontowaniu karty montują mi się 2 woluminy: jeden typowo linuxowy z katalogami boot oraz oraz lost+found  a drugi chyba fat32.
Nie mogę nic zapisać ani usunąć :/
Tytuł: Brak dostępu do karty SD.
Wiadomość wysłana przez: Paweł Kraszewski w 2013-06-01, 21:37:06
Jak nie zależy ci na zawartości, to pojedź pierwszą "ścieżkę" zerami i od nowa załóż partycje.
dd if=/dev/zero of=/dev/URZADZENIE_PEN_BEZ_CYFRY_NA_KONCU count=63
Potem fdisk i mkfs.
Tytuł: Brak dostępu do karty SD.
Wiadomość wysłana przez: alvaro w 2013-06-02, 02:03:57
Po pierwsze sprawdź, czy nie zablokowałeś zapisu na karcie. Karty Secure Digital (http://pl.wikipedia.org/wiki/Secure_Digital) mają fizyczny przełącznik z lewej strony (Lock (http://www.olympusamerica.com/files/oima_cckb/faq_images/_SD_Lock.jpg)). Powinien się znajdować na górze (nie LOCK).

Jeśli to nie to to możesz spróbować przemontować z roota partycję w trybie do zapisu:
mount -o remount,rw /dev/sdb1 /media/FLASHMEM
Zamiast /dev/sdb1 podaj nazwę urządzenia partycji a zamiast /media/FLASHMEM - punkt montowania.
Powtórz to dla wszystkich partycji z kart pamięci.

Nazwę możesz sprawdzić za pomocą programu fdisk:
fdisk -l
Jeśli partycja jest zamontowana to możesz skorzystać z df:
# # brak pendrive czy karty pamieci
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/root      102G   21G   76G  22% /
tmpfs                 3.9G  432K  3.9G   1% /dev/shm
/dev/sda2             7.9G  102M  7.4G   2% /boot
# # podlaczamy pendrive  czy karte pamieci
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/root      102G   21G   76G  22% /
tmpfs                 3.9G  432K  3.9G   1% /dev/shm
/dev/sda2             7.9G  102M  7.4G   2% /boot
/dev/sdb1             3.8G  3.8G   21M 100% /media/MYLINUXLIVE
Na powyższym przykładzie widać, że partycja /dev/sdb1 jest zamontowana pod /media/MYLINUXLIVE.

Możesz ją odmontować poprzez:
umount /media/MYLINUXLIVE
Partycja FAT32 (VFAT)

Aby zwykły użytkownik miał prawa zapisu być może będziesz musiał podać uid i gid oraz odpowiednią maskę przy montowaniu:
# cat /proc/mounts | grep -E "^/dev/sdb1"
/dev/sdb1 /media/MYLINUXLIVE vfat rw,nosuid,nodev,relatime,uid=500,gid=500,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,shortname=mixed,utf8,flush,errors=remount-ro 0 0
Aby sprawdzić swój uid i gid można się posłużyć poleceniem:
# grep -E "^$(logname):" /etc/passwd
uzytkownik:x:500:500:Jan Kowalski:/home/uzytkownik:/bin/bash
# id -u
500
# id -g
500
Pierwsza liczba 500 oznacza uid a druga gid. Uwaga! Tego polecenia nie wykonujemy z roota tylko z użytkownika o jakiego nam chodzi.

Z roota (czy innego użytkownika) można byłoby sprawdzić uid i gid danego użytkownika w następujący sposób:
# grep -E "^uzytkownik:" /etc/passwd
[root@progress test]# grep -E "^uzytkownik:" /etc/passwd
uzytkownik:x:500:500:Jan Kowalski:/home/uzytkownik:/bin/
# id -u uzytkownik
500
# id -g uzytkownik
500
W Debianie i pochodnych numeracja zaczyna się domyślnie od 1000 zaś w EL/Fedora od 500.
Bardzo prawdopodobne, że pierwszy użytkownik w Debianie będzie miał id 1000 zaś w EL 500. To samo tyczy się grupy.
Oczywiście w systemie istnieją użytkownicy/grupy o mniejszym numerze id/gid. Dla przykładu roota ma 0.

Montowanie odbywa się w następujący sposób:
# mount -o rw,noatime,uid=500,gid=500,user,fmask=0022,dmask=0077 /dev/sdb1 /mnt
# ls -la /mnt/ | head -n 5
total 2970780
drwx------. 13 uzytkownik  uzytkownik   4096 Jan  1  1970 .
dr-xr-xr-x. 26 root        root         4096 Jun  1 22:05 ..
drwx------.  2 uzytkownik  uzytkownik   4096 Sep 29  2012 katalog
-rwxr-xr-x.  1 uzytkownik  uzytkownik     27 Sep 29  2012 plik
Jeśli chcesz, żeby wszyscy użytkownicy mieli do niej prawa ustaw umask na 0:
mount -o rw,noatime,user,umask=0 /dev/sdb1 /mnt
# ls -la /mnt | head -n 5
total 2970780
drwxrwxrwx. 13 root root       4096 Jan  1  1970 .
dr-xr-xr-x. 26 root root       4096 Jun  1 22:05 ..
drwxrwxrwx.  2 root root       4096 Sep 29  2012 katalog
-rwxrwxrwx.  1 root root         27 Sep 29  2012 plik
Aby montować partycje przy starcie dodaj odpowiedni wpis do /etc/fstab.

Partycja ext2/ext3/ext4

W przypadku partycji linuksowych sprawa może się nieco skomplikować jeśli chodzi o uprawnienia.
Założenia są generalnie takie, że system plików będzie używany pod jednym systemem.
Nie ma więc opcji mapowania uid/gid.

Nie trudno o sytuację, w którym użytkownicy na różnych systemach mają inny uid/gid mimo takiej samej nazwy.

Można to obejść na kilka sposobów.

Przede wszystkim można zmienić właściciela plików:
chown -R uzytkownik:uzytkownik /katalog
Można to zrobić w nieco bardziej wyrafinowany sposób:
# find -P /mnt -mount -uid 1000 | xargs chown uzytkownik > /dev/null 2>&1
# find -P /mnt -mount -gid 1000 | xargs chgrp uzytkownik > /dev/null 2>&1
W powyższym przykładzie dla każdego pliku (i katalogu) w /mnt, którego właścicielem jest użytkownik o uid (gid) 1000 zmieniamy właściciela (użytkownika i grupę) na uzytkownik w naszym systemie.

Alternatywą jest wykorzystanie np. serwera NFS do mapowania uid/gid (http://www.kernelcrash.com/blog/nfs-uidgid-mapping/2007/09/10/).
Tytuł: Brak dostępu do karty SD.
Wiadomość wysłana przez: Tadzio_88 w 2013-06-02, 12:08:01
Używam Fedory 18 i środowiska graficznego LXDE.
Z tego co pamiętam karta była formatowana w Windows na FAT32.
Pod Windowsem jest ten sam problem i bynajmniej nie mam włączonej blokady fizycznej.
Niestety żadna z porad nie skutkuje :/