GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendaftar blok data file di Linux?

Solusi 1:

Anda dapat menggunakan alat "debugfs" untuk melihat info file di baris perintah atau interaktif. Gunakan:

# debugfs /dev/<spartition>
# stat /path/to/file

atau

# debugfs -R "stat /path/to/file" /dev/<partition>

misalnya:

# debugfs -R "stat /etc/passwd"  /dev/sda5
Inode: 435914   Type: regular    Mode:  0644   Flags: 0x0
Generation: 979004472    Version: 0x00000000
User:     0   Group:     0   Size: 1577
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x4a2d6f78 -- Mon Jun  8 23:07:20 2009
atime: 0x4a2d6f79 -- Mon Jun  8 23:07:21 2009
mtime: 0x4a2d6f78 -- Mon Jun  8 23:07:20 2009
Size of extra inode fields: 4
BLOCKS:
(0):1767438
TOTAL: 1

Solusi 2:

Lihatlah sintaks untuk "debugfs", dan khususnya perintah "stat". Itu akan menampilkan daftar blok data yang digunakan oleh file. Anda dapat meneruskan parameter ke "debugfs" dengan argumen "-f" untuk memanggilnya dari skrip.

Solusi 3:

Cara sederhana untuk mendapatkan daftar blok (tanpa harus membaca dari partisi seperti di debugfs jawaban) adalah dengan menggunakan FIBMAP ioctl. Saya tidak tahu perintah apa pun untuk melakukannya, tetapi sangat mudah untuk menulisnya; pencarian Google cepat memberi saya contoh penggunaan FIBMAP, yang melakukan apa yang Anda inginkan. Salah satu keuntungannya adalah ini akan bekerja pada sistem file apa pun yang mendukung bmap operasi, bukan hanya ext3.

Alternatif yang lebih baru (dan lebih efisien) adalah FIEMAP ioctl, yang juga dapat menampilkan informasi mendetail tentang luasan (berguna untuk ext4).

Solusi 4:

hdparm --fibmap /path/to/filename

Saya tidak akan bekerja pada zfs, tetapi akan bekerja pada ext4, btrfs, (v)fat, dll

man 8 hdparm :

--fibmap Saat digunakan, ini harus menjadi satu-satunya bendera yang diberikan. Itu membutuhkan jalur file sebagai parameter, dan akan mencetak daftar luas perangkat (rentang sektor) yang ditempati oleh file itu di disk. Nomor sektor diberikan sebagai nomor LBA absolut, dirujuk dari sektor 0 perangkat fisik (bukan partisi atau sistem file). Informasi ini kemudian dapat digunakan untuk berbagai tujuan, seperti memeriksa tingkat fragmentasi file yang lebih besar, atau menentukan sektor yang sesuai untuk dikorupsi dengan sengaja selama prosedur pengujian injeksi kesalahan.


Linux
  1. Bagaimana Mengelola Kemampuan File Linux

  2. Cara menemukan File di Linux

  3. Bagaimana saya bisa memantau data pada port serial di Linux?

  1. Cara memindahkan file di Linux

  2. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  3. Bagaimana Mengganti Nama File di Linux?

  1. Cara Menggunakan Perintah SS Linux

  2. Cara Mendaftar Pengguna di Linux

  3. Cara Membuat File di Linux