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:
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.
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:
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.
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"
ls
.testdisk
, uruchamiająctestdisk
polecenie ze ścieżką pliku obrazu jako pierwszym parametrem w wierszu polecenia.Odpowiedzi:
Możesz użyć
debugfs
programu e2fsprogs . Pomimo swojej historycznej nazwy, będzie działać na systemach plików ext2 / 3/4. Użycie jest proste:gdzie „ls -l” jest
debugfs
konkretnym poleceniem, które działa w większości jakls -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ę:Nie mogę powiedzieć, że rozważam tę godną polecenia praktykę, ale spełni ona wszystkie wymagania.
źródło
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: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:lub
źródło
Prosta odpowiedź: nie możesz.
ls
uż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życiels
(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.
źródło
Jak opisano wcześniej, debugfs działa dobrze.
W przypadku NTFS istnieje ntfsls z ntfs-3g.
W przypadku FAT istnieje mdir z mtools.
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.
Osobiście wolę to i ustawiłem dla tego alias:
źródło