ls trên thiết bị mà không cần gắn nó


9

Có thể chạy lstrên thiết bị mà không cần gắn thiết bị trước không?
Một cái gì đó như thế này:

# ls /dev/sda1

Với mục đích gì?
dawud

Tôi không nghĩ vậy. Bạn chắc chắn cần một công cụ bên cạnh ls.
strugee

Không. Tại sao bạn không cho chúng tôi biết những gì bạn đang cố gắng để đạt được?
jasonwryan

1
đôi khi tôi muốn gắn một số thiết bị nhưng không nhớ nếu sda1 / 2/3/4/5/6 của nó, v.v. Chỉ cần liệt kê các tệp trên thiết bị đó để cho tôi biết manh mối đó có phải là thiết bị không tìm kiếm
lampoon

Nhân tiện: nếu bạn có hình ảnh của một đĩa (không phải phân vùng), bạn có thể thấy các tệp của nó testdiskbằng cách chạy testdisklệnh với đường dẫn tệp hình ảnh làm tham số đầu tiên trên dòng lệnh.
Abbafei

Câu trả lời:


11

Bạn có thể sử dụng debugfschương trình của e2fspross . Mặc dù tên lịch sử của nó, nó sẽ hoạt động trên các hệ thống tập tin ext2 / 3/4. Cách sử dụng rất đơn giản:

# 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
 …   

trong đó "ls -l" là một debugfslệnh cụ thể hoạt động chủ yếu như ls -l; bạn không thể sử dụng bất kỳ lệnh shell tùy ý nào ở đó. Theo mặc định, debugfs mở một ổ đĩa ở chế độ chỉ đọc nên điều này tương đối an toàn; ví dụ: thử điều này trên phân vùng không ext2 / 3/4 chỉ đưa ra chẩn đoán:

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

Tôi không thể nói rằng tôi xem xét thực hành khuyến nghị này, nhưng nó sẽ làm những gì bạn yêu cầu.


3

Toàn bộ quan điểm của việc gắn một hệ thống tập tin là truy cập các tập tin của nó. Vì vậy, nói chung, bạn không thể truy cập các tệp của hệ thống tệp mà không cần cài đặt nó.

Có một vài tiện ích truy cập trực tiếp vào tệp mà không cần cài đặt, chẳng hạn như gỡ lỗi cho hệ thống tệp ext2 / ext3 / ext4 và mtools cho hệ thống tệp FAT.

Đối với ext2 / ext3 / ext4, thay vì gọi chương trình nguy hiểm và khó sử dụng debugfs, bạn có thể liệt kê vị trí gắn kết cuối cùng của nó:

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

Tuy nhiên, điều này chỉ hữu ích nếu vị trí gắn kết cuối cùng đã được ghi lại.

Hầu hết các loại hệ thống tập tin hỗ trợ cho nhãn hệ thống tập tin (ví dụ tune2fs -L foo). Vì vậy, cung cấp cho tất cả các hệ thống tập tin của bạn một nhãn duy nhất. Sau đó gắn hệ thống tập tin theo nhãn:

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

hoặc là

mount LABEL=foo /media/foo

2

Câu trả lời đơn giản: bạn không thể. lssử dụng các thường trình libc tiêu chuẩn chuyển thành các cuộc gọi hệ thống được phục vụ bởi trình điều khiển hệ thống tệp, do đó không thể sử dụng ls(hoặc bất cứ điều gì sử dụng các cuộc gọi hệ thống đó cho vấn đề đó) mà không cần gắn hệ thống tệp.

Bạn có thể viết một tiện ích có thể phá vỡ điều này bằng cách có một bản sao riêng của một số phần của trình điều khiển hệ thống tệp (điều đó tồn tại, ví dụ như để đọc các hệ thống tệp Ext2 từ Windows), nhưng điều đó là không thực tế.

Nếu vấn đề của bạn chỉ là xác định các phân vùng, có lẽ bạn nên bắt đầu sử dụng GPT có không gian cho tên phân vùng (72 byte cho mỗi phân vùng). Một số giải pháp quá mức (ví dụ Linux MD hoặc LVM) cũng cho phép đặt tên.


1

Như đã mô tả trước đó, debugfs hoạt động tốt.

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

Đối với NTFS, có ntfsls từ ntfs-3g.

ntfsls /dev/sda2

Đối với FAT, có mdir, từ mtools.

mdir -i /dev/sdc1

Đối với exFAT tôi không chắc chắn mặc dù. Có vẻ như exfat-utils không bao gồm bất kỳ công cụ nào tương tự như các công cụ được mô tả ở trên. Mặc dù có dumpexfat, nhưng tôi không nghĩ nó sẽ cung cấp thông tin được yêu cầu.

Để tìm hiểu thêm chi tiết về các ổ đĩa đính kèm, có lsblk.

lsblk

Cá nhân tôi thích điều này và đã đặt bí danh cho nó:

alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.