বুটেবল লিনাক্স ইউএসবি স্টিক তৈরি করার সময় সিঙ্ক কেন এত গুরুত্বপূর্ণ?


15

আর্চ লিনাক্স উইকি থেকে: https://wiki.archlinux.org/index.php/USB_flash_installation_media

# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

[...] ইউএসবি ড্রাইভটি টানানোর আগে সিঙ্কটি সম্পূর্ণ করতে মিস করবেন না

আমি জানতে চাই

  • এটার কাজ কি?
  • বাদ পড়লে কী পরিণতি হবে?

মন্তব্য

ddcommandচ্ছিক সহ কমান্ড ব্যবহৃত status=progress:

tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync

বা pvঅগ্রগতি জন্য ব্যবহার

tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync

উত্তর:


19

ddযখন এটি, একটি ডিভাইসে লিখেছেন তাই কিছু ডেটা অংশ তা এখনো না লেখা যেতে কার্নেল ডিস্ক ক্যাশে বাইপাস না USBউপর লাঠি ddসমাপ্তির। যদি আপনি USBএই মুহুর্তে আপনার স্টিকটি প্লাগ প্লাগ করেন তবে USBস্টিকের সামগ্রীটি বেমানান হবে। সুতরাং, আপনার সিস্টেম এমনকি এই USBকাঠি থেকে বুট করতে ব্যর্থ হতে পারে ।

Sync ডিভাইসে কোনও স্থির-ইন-ক্যাশে ডেটা ফ্লাশ করে।

অনুরোধ করার পরিবর্তে syncআপনি fdatasync ddরূপান্তর বিকল্পটি ব্যবহার করতে পারেন :

fdatasync

শারীরিকভাবে সমাপ্তির আগে আউটপুট ফাইল ডেটা লিখুন

আপনার ক্ষেত্রে, আদেশটি হ'ল:

tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync

conv=fdatasyncতোলে ddকার্যকরভাবে কল fdatasync()ঠিক আগে স্থানান্তর শেষে সিস্টেম কল ddপ্রস্থানের (আমি এই চেক করা ddএর উত্স)।

এটি নিশ্চিত করে যে এটি ddপরিষ্কার করার জন্য নির্দেশ না দিলে ক্যাশেগুলি বাইপাস বা ফ্লাশ করবে না।


আপনার অবদানের জন্য ধন্যবাদ, তবে আমি নিশ্চিত যে এই বক্তব্য সঠিক am কার্নেল ডিস্ক ক্যাশে যখন এটি একটি ডিভাইসে লিখেছেন বাইপাস না । কোনও ফাইলে লেখার সময় (কার্নেলের ফাইল সিস্টেম স্তর উপরে) জিনিসগুলি ক্যাশে করা হয়। তবে আমি ডিভাইসে লেখার বিষয়ে উদ্বিগ্ন। আপনি যদি পারেন তবে এই বিবৃতিটির জন্য কোনও উত্স সরবরাহ করুন, কারণ এটি এই প্রশ্নের লঞ্চপিন। যদি সত্য হয় তবে এটি কোনও -টু-ডিভাইস অপারেশনের পরে চলার জন্য একটি বৈধ কারণ সরবরাহ করবে would ddsyncdd
জোনাথন কোমার

হ্যাঁ এটা ক্যাশেড ক্যাশিংটি কার্নেলের ব্লক ডিভাইস পরিকাঠামোর ভিতরে ঘটে। ফাইল অপারেশনগুলি নিজেই ক্যাশে হয় না। অন্তর্নিহিত ব্লক ডিভাইস ইন্টারফেস নগদ করা হয়। উত্স: lxr.free-electrons.com/source/ block
সার্জ

@ ম্যাকমডনেস 86 আপডেট হওয়া উত্তরটি দেখুন
সার্জ

7
আমি ব্যবহারটি প্রিফার করছি oflag=sync, সুতরাং অগ্রগতি প্রকৃত স্থানান্তর গতিকে আউটপুট করে এবং ক্যাশেডকে নয় (সুতরাং এক সেকেন্ড 100MB / s এর পরিবর্তে স্থির 10MB / s এবং তারপরে 10 সেকেন্ডের স্টল)।
বার্ট পোলট

কোনও ব্লক ডিভাইসে লিখিতভাবে ভিএফএসকে পুরোপুরি বাইপাস করে। অন্য কথায়: কোনও ফাইলে লেখার জন্য কার্নেল দ্বারা ক্যাচ করা যায় (এবং এটি সাধারণত হয়) তবে কোনও ডিভাইসে লিখন কখনই কার্নেল দ্বারা ক্যাশে হয় না (এবং এটি পারে না)।
এরিক

0

সিঙ্ক (1) ম্যানুয়াল পৃষ্ঠা থেকে: "সিঙ্ক - স্থির সঞ্চয়স্থানে ক্যাশেড লেখাগুলিকে সিঙ্ক্রোনাইজ করুন"। মূলত syncনিশ্চিত করে নিন যে আপনার সমস্ত ডেটা ক্যাশে থেকে স্টিকে লেখা আছে।


আমি দেখতে পাচ্ছি না যে আপনার প্রশ্নে আলোটি উঠে যাওয়ার অংশটি কোথায় উপস্থিত হয়।
স্কাইবা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.