ls
Bir cihazı ilk önce monte etmeden çalıştırmak mümkün müdür ?
Bunun gibi bir şey:
# ls /dev/sda1
ls
.
ls
Bir cihazı ilk önce monte etmeden çalıştırmak mümkün müdür ?
Bunun gibi bir şey:
# ls /dev/sda1
ls
.
Yanıtlar:
E2fsprogsdebugfs
programını kullanabilirsiniz . Tarihsel adına rağmen ext2 / 3/4 dosya sistemleri üzerinde çalışacaktır. Kullanımı basit:
# 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
…
burada "ls -l" debugfs
çoğunlukla gibi davranan özel bir komuttur ls -l
; orada rastgele bir kabuk komutu kullanamazsınız. Varsayılan olarak, debugfs bir sürücüyü salt okunur modda açar, böylece bu nispeten güvenlidir; örneğin bunu ext2 / 3/4 olmayan bir bölümde denemek yalnızca bir tanılama sağlar:
# debugfs -R "ls -l" /dev/sda2
/dev/sda2: Bad magic number in super-block while opening filesystem
ls: Filesystem not open
Bu tavsiye edilen uygulamayı düşündüğümü söyleyemem, ama istediğini yapacak.
Bir dosya sistemini kurmanın asıl amacı dosyalarına erişmektir. Bu nedenle, hayır, genel olarak, bir dosya sisteminin dosyalarına bağlamadan erişemezsiniz.
Ext2 / ext3 / ext4 dosya sistemleri için debugfs ve FAT dosya sistemleri için mtools gibi bir dosyaya doğrudan bağlanmadan erişen birkaç yardımcı program vardır .
Bir ext2 / ext3 / ext4 için, tehlikeli ve kullanımı zor programı çağırmak yerine debugfs
, son bağlama konumunu listeleyebilirsiniz:
tune2fs -l /dev/sda1 | grep 'Last mounted'
Ancak bu yalnızca son bağlama yeri kaydedilmişse yararlıdır.
Çoğu dosya sistemi türü, dosya sistemi etiketlerinin verilmesini destekler (örn. tune2fs -L foo
). Böylece tüm dosya sistemlerinize benzersiz bir etiket verin. Ardından dosya sistemini etikete göre bağlayın:
mount /dev/disks/by-label/foo /media/foo
veya
mount LABEL=foo /media/foo
Basit cevap: yapamazsınız. ls
dosya sistemi sürücüsü tarafından sunulan sistem çağrılarına dönüşen standart libc yordamlarını kullanır, bu nedenle ls
dosya sistemini monte etmeden kullanmak (veya bu sistem çağrılarını kullanan herhangi bir şey) kullanmak mümkün değildir .
Dosya sistemi sürücüsünün bazı bölümlerinin kendi kopyasına sahip olarak bu sorunu ortadan kaldıracak bir yardımcı program yazabilirsiniz (böyle bir şey, örneğin Windows'tan Ext2 dosya sistemlerini okumak için vardır), ancak bu oldukça pratik değildir.
Sorununuz sadece bölümleri tanımlıyorsa, büyük olasılıkla bölüm adları için alan (bölüm başına 72 bayt) olan GPT'yi kullanmaya başlamalısınız . Bazı temel çözümler (örneğin Linux MD veya LVM) adlandırmaya da izin verir.
Daha önce açıklandığı gibi, debugfs iyi çalışıyor.
debugfs -R "ls -l" /dev/sda1
NTFS için, ntfs-3g'den ntfsls var.
ntfsls /dev/sda2
FAT için mtools'tan mdir var.
mdir -i /dev/sdc1
ExFAT için emin değilim. Exfat-utils, yukarıda açıklananlara benzer herhangi bir araç içermiyor gibi görünüyor. Yine de dumpexfat var, ama istenen bilgileri sağlayacağını sanmıyorum.
Bağlı sürücüler hakkında daha fazla bilgi edinmek için lsblk var.
lsblk
Şahsen ben bunu tercih ediyorum ve bunun için bir takma ad belirledim:
alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"