কীভাবে বর্ধিত বৈশিষ্ট্যগুলি সংরক্ষণ এবং সংরক্ষণ করা হয়?


11

বর্ধিত ফাইল বৈশিষ্ট্য সম্পর্কে আমার একটি ছোট প্রশ্ন আছে। ধরুন আমি আমার ফাইলগুলিকে মেটাডেটা দিয়ে বর্ধিত বৈশিষ্ট্যগুলিতে লেবেল করেছি (উদাহরণস্বরূপ সততার জন্য অ্যাকাউন্টে - তবে এটি আমার প্রশ্নের জন্য গুরুত্বপূর্ণ নয়)। এখন যে প্রশ্নগুলি দেখা দেয়:

  • এই বৈশিষ্ট্যগুলি কোথায় সংরক্ষণ করা হয়? অবশ্যই আমি অনুমান করা ইনোডে নয়, তবে কোন অবস্থানে - বা আরও ভাল: কাঠামো?
  • এই বৈশিষ্ট্যগুলি কোনও ফাইলের সাথে কীভাবে সংযুক্ত থাকে? বৈশিষ্ট্য কাঠামো থেকে ইনোডের কোনও সংযোগ আছে বা তাই?
  • ফাইলগুলি অনুলিপি করা / ঘোরাফেরা করার পরে কী ঘটে? আমি কেবল এটি পরীক্ষা করেছি, যখন কোনও ফাইল সরানো হয় তখন ফাইলটি তার বৈশিষ্ট্য থেকে যায়। এটি অনুলিপি করার সময়, অনুলিপিটির কোনও বৈশিষ্ট্য থাকে না। সুতরাং আমি ধরে নিচ্ছি যে এটি সিডিতে জ্বলছে বা ফাইল ইমেল করছে, এটিও এর বৈশিষ্ট্যগুলি হারাবে?

উত্তর:


10

আপনার প্রশ্নের উত্তর ফাইল সিস্টেম নির্দিষ্ট। Ext3 এর জন্য উদাহরণস্বরূপ, fs / ext3 / xattr.c এ দেখুন , এতে নিম্নলিখিত বিবরণটি রয়েছে:

  16 /*
  17  * Extended attributes are stored directly in inodes (on file systems with
  18  * inodes bigger than 128 bytes) and on additional disk blocks. The i_file_acl
  19 
 * field contains the block number if an inode uses an additional block. All
  20  * attributes must fit in the inode and one additional block. Blocks that
  21  * contain the identical set of attributes may be shared among several inodes.
  22  * Identical blocks are detected by keeping a cache of blocks that have
  23  * recently been accessed.
  24  *
  25  * The attributes in inodes and on blocks have a different header; the entries
  26  * are stored in the same format:
  27  *
  28  *   +------------------+
  29  *   | header           |
  30  *   | entry 1          | |
  31  *   | entry 2          | | growing downwards
  32  *   | entry 3          | v
  33  *   | four null bytes  |
  34  *   | . . .            |
  35  *   | value 1          | ^
  36  *   | value 3          | | growing upwards
  37  *   | value 2          | |
  38  *   +------------------+
  39  *
  40  * The header is followed by multiple entry descriptors. In disk blocks, the
  41  * entry descriptors are kept sorted. In inodes, they are unsorted. The
  42  * attribute values are aligned to the end of the block in no specific order.
  43  *
  44  * Locking strategy
  45  * ----------------
  46  * EXT3_I(inode)->i_file_acl is protected by EXT3_I(inode)->xattr_sem.
  47  * EA blocks are only changed if they are exclusive to an inode, so
  48  * holding xattr_sem also means that nothing but the EA block's reference
  49  * count can change. Multiple writers to the same block are synchronized
  50  * by the buffer lock.
  51  */

"কীভাবে বৈশিষ্ট্যগুলি সংযুক্ত করা হয়" প্রশ্ন সম্পর্কিত, লিঙ্কটি অন্য উপায়ে রয়েছে, ইনোডের বর্ধিত বৈশিষ্ট্যের সাথে একটি লিঙ্ক রয়েছে, যথাক্রমে দেখুন EXT3_XATTR_NEXTএবং ext3_xattr_list_entriesxattr.h এবং xattr.c এ।

পুনরুদ্ধার করতে, বৈশিষ্ট্যগুলি ইনোডের সাথে যুক্ত এবং এফএস নির্ভরশীল হয়, তাই হ্যাঁ, সিডি রম বার্ন করার সময় বা কোনও ফাইল ইমেল করার সময় আপনি বৈশিষ্ট্যগুলি হারাবেন।


6
এখানে একটি ছোটখাটো বিস্তারিত উত্তর দেওয়া হয়নি: অনুলিপি করার সময় আপনি বৈশিষ্ট্যগুলি সংরক্ষণ করতে পারেন (অবশ্যই আপনাকে xattr সমর্থন সহ একটি ফাইল সিস্টেমে অনুলিপি করতে হবে)। সিপি-র একটি বিকল্প রয়েছে "--প্রিজারভ = xattr"
মার্সেল স্টিমবার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.