Jest na urządzeniu bez montażu


9

Czy można uruchomić lsna urządzeniu bez uprzedniego zamontowania?
Coś takiego:

# ls /dev/sda1

W jakim celu?
dawud

Nie wydaje mi się Na pewno potrzebujesz narzędzia ls.
strugee,

Nie. Dlaczego nie powiesz nam, co próbujesz osiągnąć?
jasonwryan

1
na te czasy chcę zamontować jakieś urządzenie, ale nie pamiętam, czy jest to sda1 / 2/3/4/5/6 itd. Wystarczy wymienić listę plików na tym urządzeniu, aby dać mi wskazówkę, czy to urządzenie, którym jestem szuka
lampoon

Nawiasem mówiąc: jeśli masz obraz dysku (nie partycji), możesz zobaczyć jego pliki testdisk, uruchamiając testdiskpolecenie ze ścieżką pliku obrazu jako pierwszym parametrem w wierszu polecenia.
Abbafei,

Odpowiedzi:


11

Możesz użyć debugfsprogramu e2fsprogs . Pomimo swojej historycznej nazwy, będzie działać na systemach plików ext2 / 3/4. Użycie jest proste:

# debugfs -R "ls -l" /dev/sda6
  2   40755 (2)   1001   1001    4096 17-Sep-2013 04:03 .
  2   40755 (2)   1001   1001    4096 17-Sep-2013 04:03 ..
 16  100644 (1)   1001   1001    9085 17-Sep-2013 04:03 avserver.conf
 17  100644 (1)   1001   1001    2177 17-Sep-2013 04:03 bash.bashrc
 26  100644 (1)   1001   1001     722 17-Sep-2013 04:03 crontab
 …   

gdzie „ls -l” jest debugfskonkretnym poleceniem, które działa w większości jak ls -l; nie można tam użyć dowolnego polecenia powłoki. Domyślnie debugfs otwiera dysk w trybie tylko do odczytu, więc jest to względnie bezpieczne; na przykład wypróbowanie tego na partycji innej niż ext2 / 3/4 daje tylko diagnozę:

# debugfs -R "ls -l" /dev/sda2
/dev/sda2: Bad magic number in super-block while opening filesystem
ls: Filesystem not open

Nie mogę powiedzieć, że rozważam tę godną polecenia praktykę, ale spełni ona wszystkie wymagania.


3

Celem montowania systemu plików jest dostęp do jego plików. Więc nie, ogólnie rzecz biorąc, nie można uzyskać dostępu do plików systemu plików bez jego zamontowania.

Istnieje kilka narzędzi, które uzyskują bezpośredni dostęp do pliku bez montowania, takich jak debugfs dla systemów plików ext2 / ext3 / ext4 i mtools dla systemów plików FAT.

W przypadku ext2 / ext3 / ext4 zamiast wywoływać niebezpieczny i trudny w użyciu program debugfs, możesz podać jego ostatnią lokalizację montowania:

tune2fs -l /dev/sda1 | grep 'Last mounted'

Jest to jednak przydatne tylko wtedy, gdy zarejestrowano ostatnią lokalizację montowania.

Większość typów systemów plików obsługuje nadawanie etykiet systemom plików (np tune2fs -L foo.). Dlatego nadaj wszystkim swoim systemom plików unikalną etykietę. Następnie zamontuj system plików według etykiety:

mount /dev/disks/by-label/foo /media/foo

lub

mount LABEL=foo /media/foo

2

Prosta odpowiedź: nie możesz. lsużywa standardowych procedur libc, które tłumaczą się na wywołania systemowe obsługiwane przez sterownik systemu plików, dlatego nie jest możliwe użycie ls(lub cokolwiek przy użyciu tych wywołań systemowych) bez zamontowania systemu plików.

Możesz napisać narzędzie, które obejdzie to, posiadając własną kopię niektórych części sterownika systemu plików (coś takiego istnieje np. Do odczytu systemów plików Ext2 z Windows), ale jest to dość niepraktyczne.

Jeśli twoim problemem jest tylko identyfikacja partycji, prawdopodobnie powinieneś zacząć korzystać z GPT, która ma miejsce na nazwy partycji (72 bajty na partycję). Niektóre nadrzędne rozwiązania (na przykład Linux MD lub LVM) również pozwalają na nazewnictwo.


1

Jak opisano wcześniej, debugfs działa dobrze.

debugfs -R "ls -l" /dev/sda1

W przypadku NTFS istnieje ntfsls z ntfs-3g.

ntfsls /dev/sda2

W przypadku FAT istnieje mdir z mtools.

mdir -i /dev/sdc1

Na exFAT nie jestem jednak pewien. Wydaje się, że exfat-utils nie zawiera żadnych narzędzi podobnych do tych opisanych powyżej. Jest jednak dumpexfat, ale nie sądzę, że dostarczy wymaganych informacji.

Aby dowiedzieć się więcej o podłączonych dyskach, znajdziesz lsblk.

lsblk

Osobiście wolę to i ustawiłem dla tego alias:

alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.