Tidakkah metadata menempati ukuran berapa pun?

51

Saya menempatkan 4096 karakter dalam file teks dan menyimpannya. Karena setiap karakter adalah 1 byte, Ukuran file teks harus 4K byte. Seperti yang Anda lihat di bawah, tidak apa-apa:

masukkan deskripsi gambar di sini

Saya menghubungkan memori flash ke komputer saya. ruang kosong pada memori flash adalah 1,717,518,336byte :

masukkan deskripsi gambar di sini

Saya membuat salinan file di memori flash saya. Dan lagi lihat ruang kosong. ini memiliki ruang bebas 1,717,514,240byte :

masukkan deskripsi gambar di sini

Coba lihat apa bedanya:

1.717.518.336 - 1.717.514.240 =4096 byte


Pertanyaan saya :

Q1:

Seperti yang Anda lihat pada gambar terakhir di atas, satu-satunya ruang yang ditempati file pada flash, adalah ruang untuk isinya [karakter]. Jadi di mana file metadata?

Maksud saya, ketika saya memindahkan file ke komputer lain, bagaimana ia memahami nama file, Pemilik file, Date dibuat dan dimodifikasi dan ...?

Bukankah itu menempati ukuran berapa pun? !!

Q2:

Bisakah saya melihat file metadata di memori flash?

masukkan deskripsi gambar di sini

Hargai waktu dan pertimbangan Anda.

Pengguna yang Baik
sumber
10
metadata akan terkandung dalam sistem file itu sendiri. itu bukan bagian dari ukuran file yang dilaporkan oleh Windows. Selanjutnya metadata FAT32 dan NTFS akan berbeda.
Ramhound
@Ramhound ketika saya memindahkan file teks ke memori flash, file metadata-nya juga pindah ke memori flash, kan? bagaimana saya bisa melihatnya?
TheGoodUser
1
Selain memahami internal OS (berharga sendiri), mungkin tidak ada alasan untuk melihat atau memodifikasi informasi tersebut kecuali Anda sedang menulis program perbaikan / pemulihan disk. Untuk penggunaan normal, Anda tidak akan pernah ingin mengubah informasi pada tingkat ini karena dapat dengan mudah merusak integritas sistem file itu sendiri dan segala sesuatu yang menggunakannya.
Joe
3
Jawaban singkat: Memang membutuhkan ruang, tetapi itu tidak dihitung sebagai bagian dari ukuran file.
user253751

Jawaban:

50

Ya, metadata menempati ruang. Pada NTFS menempati 1024 byte, lebih spesifik. Namun, informasi tersebut tidak disimpan dalam file, tetapi dalam tabel file master MFT. Khususnya dalam catatan MFT # 4 $AttrDef.

Lihat artikel Technet ini untuk perincian: tabel 3.5 menampung semua catatan MFT.

Ketika volume diformat dengan NTFS, file Tabel File Master (MFT) dan potongan metadata lainnya dibuat. Metadata adalah file yang digunakan NTFS untuk mengimplementasikan struktur sistem file. NTFS menyimpan 16 catatan pertama MFT untuk file metadata.

NTFS membuat catatan file untuk setiap file dan catatan direktori untuk setiap direktori yang dibuat pada volume NTFS. MFT mencakup catatan file terpisah untuk MFT itu sendiri. Catatan file dan direktori ini disimpan di MFT. Atribut file ditulis ke ruang yang dialokasikan di MFT. Selain atribut file, setiap record file berisi informasi tentang posisi record file dalam MFT.

Perhatikan bahwa sistem file lain dapat dan tidak menangani metadata secara berbeda.

EDIT: Telah ditunjukkan di bagian komentar bahwa jawaban ini tidak tepat karena OP meminta metadata pada sistem file FAT32, bukan NTFS. Jika saya tahu caranya, saya akan menghapus atribut "jawaban yang benar". Oleh karena itu saya memberikan informasi tambahan yang menjawab pertanyaan sehubungan dengan FAT32.

FAT32 menyimpan metadata sederhana seperti visibilitas atau waktu modifikasi untuk setiap file dan folder dalam entri di folder induk file atau folder, membuat pohon turun dari folder root FS. Seperti yang ditunjukkan berkaitan dengan NTFS ini bukan file tetapi disimpan dalam struktur data folder. Entri awalnya berukuran 32 byte dan berisi atribut berikut:

Name (8.3) xxxxxxxx.yyy. (88 bits)

Attribute byte (8 bits of information, described later in this section).

One reserved byte.

Create time (24 bits).

Create date (16 bits).

Last access date (16 bits).

Two reserved bytes.

Last modified time (16 bits).

Last modified date (16 bits).

Starting cluster number in the file allocation table (16 bits).

File size (32 bits).

Daftar ini diambil dari artikel Microsoft Technet ini dan berkaitan dengan FAT16. Karena ukuran cluster FAT32 bisa 32 bit dan nama file bisa lebih lama dari 8,3 tabel tidak sepenuhnya akurat. Untuk mengakomodasi nama file yang panjang dan disk yang lebih besar, FAT32 memodifikasi beberapa perilaku yang dapat dibaca di Wikipedia di sini, tetapi ide dasarnya tetap berlaku.

bjanssen
sumber
2
Anda dapat menggunakan NTFSinfo suite Sysinternal untuk melihat Metadata dan menemukan ekstensi. Anda dapat mengunduhnya di sini: technet.microsoft.com/en-us/sysinternals/default Ada beberapa editor metadata, tetapi saya tidak bisa merekomendasikan siapa pun karena saya belum menggunakannya.
bjanssen
9
@ TheGoodUser-Sp metadata, setidaknya pada NTFS, tidak disimpan dalam "file" dalam arti konvensional, yang adalah apa yang saya dapatkan kesan yang Anda cari. Tidak ada sesuatu yang tersimpan di folder \ windows di suatu tempat yang kita semua tidak memberi tahu; metadata file adalah bagian integral dari sistem file itu sendiri.
Rob Moir
2
Dalam hal ini, Flash Drive diformat sebagai FAT-32. Jadi metada disimpan dalam File Allocation Table (FAT) en.wikipedia.org/wiki/File_Allocation_Table
jnovacho
2
Penting untuk dicatat bahwa tabel alokasi untuk NTFS dan FAT sudah dialokasikan sebelumnya. Ini berbeda dari format ke format, tetapi beberapa sektor biasanya ditempati dengan blok kosong yang dialokasikan sebelumnya yang akan digunakan untuk menyimpan metadata untuk mengurangi fragmentasi.
Kaslai
2
Apa yang membuat Anda berpikir metadata adalah ukuran tetap? Daftar kontrol akses tentunya dapat sangat bervariasi dalam hal kompleksitas; Saya gagal melihat bagaimana selalu bisa muat dalam 1024 byte (bersama dengan semua metadata lain seperti waktu akses dan modifikasi)
Ben Voigt
26

Bukankah itu menempati ukuran berapa pun? !!

Ya, tapi itu entri kecil di blok besar yang dialokasikan sebelumnya. Blok itu dihitung di bagian "bekas" dari disk Anda. Menambahkan entri di dalam blok itu tidak memerlukan blok untuk diperluas.

Tergantung pada sistem file, akhirnya blok akan diisi dan diperpanjang entah bagaimana setelah banyak nama file ditambahkan.

Bisakah saya melihat file metadata di memori flash?

Tidak mudah

Seperti yang dikatakan Ruslan dan Blorgbeard. Anda dapat menginstal hex viewer seperti HxD yang akan memungkinkan Anda untuk melihat (dan mengedit - sangat hati-hati) data sistem file mentah. Tetapi Anda harus melakukan interpretasi sendiri tentang byte mana yang termasuk dalam struktur sistem file mana. Untuk itu Anda akan memerlukan beberapa dokumentasi yang baik dari sistem file tertentu yang digunakan pada flash disk. FAT32 cenderung lebih sederhana untuk dipahami daripada salah satu dari banyak varian NTFS. Lihat Memahami Sistem File FAT32 misalnya.

RedGrittyBrick
sumber
3
@TheGood Jika kehilangan Google, saya mungkin akan mulai dengan mem-boot Linux dan menggunakan dduntuk menyalin sistem file flash mentah ke file pada disk lain kemudian menggunakan hex-viewer untuk memeriksanya bersamaan dengan referensi-kerja yang baik pada filesystem tertentu (jika tidak eksklusif dan tidak diungkapkan). Saya mungkin membuat perubahan metadata dengan touch, ulangi dddan gunakan diff biner.
RedGrittyBrick
1
Untung aku tidak kehilangan Google.
Cthulhu
5
@ Cthulhu: Yang lama tidak membutuhkan nekronomikon. fhtagn.
RedGrittyBrick
2
Tidak perlu mengubah OS untuk menggunakan hex-viewer pada hard drive secara langsung. Cukup gunakan hex viewer yang layak. (Tampaknya bahkan hiewbisa melakukannya, tapi saya tidak yakin sejak saya di windows lama).
Ruslan
1
HxD pasti akan melakukannya, di Windows. Menu ekstra, Buka Disk.
Blorgbeard
7

Metadata tidak disimpan (atau dilaporkan oleh alat manajemen file biasa) sebagai file, itu disimpan pada data sistem file pada disk.

Bergantung pada sifat / versi sistem file, setiap entri akan mengambil sejumlah ruang disk untuk merepresentasikan informasi metadata.

Selain itu di samping ruang yang dialokasikan di Tabel File Master, beberapa filesystem juga akan membuat jurnal tentang perubahan file (mengambil ruang ekstra), dan beberapa filesystem bahkan dapat diperluas dengan bidang tambahan yang berisi metadata tujuan khusus.

Jadi secara teknis metadata membutuhkan ruang disk, tetapi tidak diperhitungkan oleh sebagian besar utilitas manajemen file yang berfungsi memanggil API sistem yang meminta sistem file untuk ruang file , bukan untuk ruang metadata .

Dan abstraksi ini hanya puncak gunung es, karena filesystem itu sendiri bekerja pada abstraksi ruang disk fisik yang mendasarinya, yang disediakan oleh rutinitas disk tingkat rendah, jadi sebenarnya hanya disk internal disk yang akan mengetahui berapa banyak posisi memori aktual yang tersedia untuk level yang lebih tinggi. dan berapa banyak yang ditandai sebagai tidak dapat diandalkan, dicadangkan, atau digunakan untuk checksum.

Dadu9
sumber
3

Metadata tergantung pada sistem file. Sistem file paling dasar yang biasanya digunakan pada media yang dapat ditukar didasarkan pada sistem file DOS (FAT). DOS tidak memiliki pengguna, dan izin. Atau, lebih tepatnya, beberapa informasi itu dibawa dalam bit data 8 dari nama file. Satu-satunya sumber daya overhead yang digunakan dalam DOS FS dasar adalah untuk memperhitungkan blok file, atau direktori di mana - dan blok itu mungkin sudah berkomitmen untuk menangani ".", Sudah. TKI, menambahkan file kosong tidak akan menambah sedikit penyimpanan, tetapi itu akan mengubah beberapa bit yang dikonsumsi dan dialokasikan.

Ketika Anda menggunakan sistem file yang lebih maju, dengan penjurnalan dan pengguna, Anda mendapatkan metadata, dan entri jurnal dan mungkin rantai forensik untuk memulihkan versi file sebelumnya, dll. Kemudian file kecil dapat meledak dalam penyimpanan yang digunakan.

Jadi, periksa jenis FS. Jika FAT, maka Anda mungkin tidak memiliki pengguna yang dicatat dalam metadata di media. Karenanya ... tidak ada ruang yang digunakan. :)

Contoh yang baik dari FAT FS adalah implementasi open source - dan Anda dapat melihat bahwa daftar operasi yang tersedia tidak termasuk "dapatkan / set pengguna" dan "periksa akses oleh pengguna". Tanpa identitas = tidak ada penyimpanan identitas itu.

JezC
sumber
2

Seperti yang Anda lihat pada gambar terakhir di atas, satu-satunya ruang yang ditempati file pada flash, adalah ruang untuk isinya [karakter]. Jadi di mana file metadata?

"File metadata" adalah direktori yang berisi file tersebut. Pada dasarnya itu adalah direktori - kumpulan metadata yang menjelaskan isi direktori.

Maksud saya, ketika saya memindahkan file ke komputer lain, bagaimana ia memahami nama file, Pemilik file, Date dibuat dan dimodifikasi dan ...?

Bukankah itu menempati ukuran berapa pun? !!

Ya, di direktori. Di sebagian besar file files, file yang sama dapat memiliki dua nama yang berbeda jika terhubung ke dua direktori yang berbeda.

Bisakah saya melihat file metadata di memori flash?

Jika sistem file Anda mendukungnya, Anda dapat melihatnya dengan melihat ukuran direktori.

David Schwartz
sumber
2

Di mana metadata disimpan?

Ketika kita berbicara tentang metadata, ada dua jenis metadata.

Jenis pertama meliputi tanggal dibuat, tanggal modifikasi terakhir, tanggal akses terakhir. Tergantung pada sistem file (yaitu NTFS / FAT / Ext3 dll ...) akan ada "metadata" yang tersedia, misalnya pemilik Windows dan izin pada NTFS.

Jenis pertama berlaku untuk semua file, misalnya file .txt dalam contoh Anda.

Semua sistem file pra-alokasikan ruang untuk berisi metadata ini di Tabel File Master (MFT untuk NTFS, beberapa nama lain untuk sistem file lainnya), yang tidak dapat diakses secara langsung oleh pengguna. Karena MFT tidak dihitung sebagai bagian dari kapasitas drive, toh tidak diperlukan ruang penyimpanan "tambahan".

Tipe kedua "metadata" ditentukan oleh jenis file atau aplikasi. Misalnya, dokumen Office menyimpan "Penulis", "Subjek" dan metadata lainnya; Gambar JPEG menyimpan satu set data EXIF ​​termasuk "gambar tanggal diambil", "model kamera", "kecepatan rana"; sementara suara MP3 berisi "album", "track #", "bitrate" ...

Tipe kedua TIDAK mengambil ruang tambahan, karena "metadata" ini merupakan bagian dari file.


Ukuran berbeda di drive yang berbeda

Ketika file teks Anda aktif C:\itu membutuhkan 4K. Ukurannya menjadi 1K saat Anda meletakkannya di flash drive H:\. Ini karena "ukuran blok" yang berbeda untuk partisi yang berbeda.

File dialokasikan ruang di blok. Oleh karena itu, pada sistem file ukuran blok 4K, 1 byte dialokasikan 4K sedangkan 4.097 byte (4K + 1 byte) dialokasikan 8K.

Rupanya Anda C:diformat dengan ukuran blok 4K sementara H:diformat dengan ukuran blok 1K, menghasilkan perbedaan.

Kenneth L.
sumber
Ketika saya menyalin file teks kosong ke memori flash, metadata-nya juga akan dipindahkan ke memori flash. Sekarang, apakah ada cara, di Linux misalnya, untuk melihat file metadata? dalam biner misalnya.
TheGoodUser
Apakah metadata disalin tergantung pada bagaimana Anda melakukannya. Misalnya robocopymemberi Anda opsi apakah akan menyalin cap waktu, atribut, informasi pemilik, daftar kontrol akses (ACL) dll. Ini juga tergantung pada apakah sistem file pada memori flash Anda mendukungnya (mis. FAT32 tidak menyimpan info pemilik dan ACL sehingga mereka toh dibuang). Metadata tidak dalam bentuk file sehingga Anda tidak dapat melihat data mentah; jika Anda ingin melihat hal-hal tingkat rendah yang Anda butuhkan dddi Linux tetapi bagaimana menafsirkannya adalah cerita lain.
Kenneth L