একটি লিনাক্স সিস্টেমে দ্রুত একটি বড় ফাইল তৈরি করুন


438

আমি কীভাবে দ্রুত একটি লিনাক্স ( রেড হ্যাট লিনাক্স ) সিস্টেমে একটি বড় ফাইল তৈরি করতে পারি ?

ডিডি কাজটি করবে, তবে /dev/zeroড্রাইভ থেকে পড়া এবং লেখার ক্ষেত্রে অনেক সময় সময় নিতে পারে যখন আপনি পরীক্ষার জন্য কয়েকশ জিবি আকারের ফাইলের প্রয়োজন হয় ... আপনার যদি বারবার এটি করা দরকার হয় তবে সময়টি সত্যিই যুক্ত হয়।

আমি ফাইলের বিষয়বস্তুগুলির বিষয়ে চিন্তা করি না, আমি কেবল এটি দ্রুত তৈরি করা চাই। কিভাবে এই কাজ করা যেতে পারে?

একটি স্পার ফাইল ব্যবহার করে এটি কাজ করবে না। আমার ডিস্কের জায়গা বরাদ্দ করার জন্য ফাইলটি দরকার।


1
এক্সট 4 এর আরও ভাল ফাইল বরাদ্দ কার্য সম্পাদন রয়েছে, যেহেতু 100 এমবি পর্যন্ত সম্পূর্ণ ব্লকগুলি একবারে বরাদ্দ করা যেতে পারে।
মার্টিনাস

5
'ট্রাঙ্কেট' কমান্ডটি বিচ্ছিন্নভাবে একটি ফাইল তৈরি করে। উদাহরণস্বরূপ en.wikedia.org/wiki/Sparse_file দেখুন
জেসন ড্রু

2
নীচে তাদের কাটা কাটা এবং ডিডি সন্ধান সহ লোকেরা "স্পার্স ফাইলটি এর সাথে কাজ করবে না" গুরুতরভাবে উপেক্ষা করছে বলে মনে হচ্ছে।
hpavc

1
আপনি "পরীক্ষার জন্য" বলতে কী বোঝাতে চেয়েছিলেন তা বোঝানো উচিত। আপনার হার্ড ডিস্কের লেখার গতি পরীক্ষা করছেন? পরীক্ষা dfদিলে কি রিপোর্ট হবে? এমন একটি অ্যাপের পরীক্ষা করা যা বিশেষ কিছু করে। উত্তর আপনি যা পরীক্ষা করতে চান তার উপর নির্ভর করে। যাইহোক আমি কিছুটা দেরি করেছি - আমি এখন দেখছি যে আপনার প্রশ্নটি
কেটে গেছে

1
আপনি যদি পুরো পার্টিশনের অনুকরণের কোনও উপায় সন্ধান করতে চান তবে আমি যেমন ছিলাম / dev / সম্পূর্ণ
জুলিয়ান

উত্তর:


509

ddঅন্যান্য উত্তরগুলি থেকে একটি ভাল সমাধান, তবে এটি এই উদ্দেশ্যে ধীর। লিনাক্সে (এবং অন্যান্য পসিক্স সিস্টেমে) আমাদের রয়েছে fallocate, যা আসলে এটি না লিখে কাঙ্ক্ষিত স্থান ব্যবহার করে, বেশিরভাগ আধুনিক ডিস্ক ভিত্তিক ফাইল সিস্টেমের সাথে কাজ করে, খুব দ্রুত:

উদাহরণ স্বরূপ:

fallocate -l 10G gentoo_root.img

5
এটি কি সম্ভব যে ডিডি ইতিমধ্যে এটি অভ্যন্তরীণভাবে ব্যবহার করছে? যদি আমি ৩.০.০ কার্নেলে 'ডিডি ইফ = = ডিভ / শূন্য = = জিরোফিল বিএস = ১ জি কাউন্ট = ১' করি, তবে প্রতি সেকেন্ডে ৫০০ মেগাবাইটের বেশি লেখার হারের সাথে লেখাগুলি 2 সেকেন্ডের মধ্যে শেষ হয়। এটি একটি 2.5 "ল্যাপটপ হার্ডড্রাইভের ক্ষেত্রে স্পষ্টভাবে অসম্ভব
lxgr

21
fallocateঠিক আমি যা খুঁজছিলাম
এবি

7
এটি ( fallocate) লিনাক্স জেডএফএস ফাইল সিস্টেমেও কাজ করবে না - github.com/zfsonlinux/zfs/issues/326
জো

5
ফ্যালোকট এক্সট3 দ্বারা সমর্থিত নয়। bugzilla.redhat.com/show_bug.cgi?id=563492
এডি

3
ডেবিয়ানে জিএনইউ / লিনাক্স প্যাকেজের fallocateঅংশ util-linux। এই সরঞ্জামটি কারেল জাক লিখেছিলেন রেডহ্যাট থেকে এবং সোর্স কোডটি এখানে পাওয়া যাবে: kernel.org/pub/linux/utils/util-linux
ফ্রান্টা

295

এটি একটি সাধারণ প্রশ্ন - বিশেষত ভার্চুয়াল পরিবেশের আজকের পরিবেশে। দুর্ভাগ্যক্রমে, উত্তরটি কেউ অনুমান করার মতো সোজা-এগিয়ে নেই forward

ডিডি হ'ল প্রথম পছন্দ, তবে ডিডি মূলত একটি অনুলিপি এবং এটি আপনাকে প্রতিটি ব্লক ডেটা লিখতে বাধ্য করে (এইভাবে ফাইলের বিষয়বস্তু সূচনা করে) ... এবং সেই সূচনাটিই এত বেশি লাগে যে আমি / ও সময় গ্রহণ করি। (এটি আরও বেশি সময় নিতে চান? / Dev / শূন্যের পরিবর্তে / dev / এলোমেলো ব্যবহার করুন ! তারপরে আপনি সিপিইউ পাশাপাশি আই / ও সময় ব্যবহার করবেন!) যদিও শেষ পর্যন্ত, ডিডি একটি খারাপ পছন্দ (যদিও মূলত ভিএম "ডিফল্ট" জিইআইআই তৈরি করে ডিফল্ট ব্যবহার করে। উদাহরণ:

dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G

কাটা কাটা অন্য পছন্দ - এবং সম্ভবত এটি দ্রুততম ... তবে এটি কারণ এটি একটি "স্পার্স ফাইল" তৈরি করে। মূলত, একটি স্পর্শযুক্ত ফাইল হ'ল ডিস্কের একটি অংশ যা একই পরিমাণে প্রচুর পরিমাণে ডেটা রাখে এবং অন্তর্নিহিত ফাইল সিস্টেমটি সত্যই সমস্ত ডেটা সংরক্ষণ না করে "চিটস" করে থাকে, তবে কেবল "ভান" করে যা এটি সেখানে রয়েছে। সুতরাং, আপনি যখন আপনার ভিএম এর জন্য 20 জিবি ড্রাইভ তৈরি করতে ট্র্যাঙ্কেট ব্যবহার করেন, তখন ফাইল সিস্টেমটি আসলে 20 জিবি বরাদ্দ করে না, তবে এটি চিট করে এবং বলে যে সেখানে 20 জিবি জিরো রয়েছে, যদিও ডিস্কটিতে একটি ট্র্যাকের সামান্য ট্র্যাক রয়েছে আসলে (সত্যই) ব্যবহার হতে পারে। উদাহরণ:

 truncate -s 10G gentoo_root.img

ফলোকট হ'ল চূড়ান্ত - এবং সেরা - ভিএম ডিস্ক বরাদ্দের সাথে ব্যবহারের জন্য পছন্দ , কারণ এটি প্রয়োজনীয়ভাবে "সংরক্ষণ করে" (বা আপনি যে সমস্ত জায়গার সন্ধান করছেন সে সমস্ত "বরাদ্দ" করে, তবে এটি কিছু লেখার বিরক্ত করে না So সুতরাং, আপনি যখন 20 গিগাবাইট ভার্চুয়াল ড্রাইভ স্পেস তৈরি করতে ফলোকেট ব্যবহার করেন, আপনি সত্যিই একটি 20 জিবি ফাইল পাবেন ("স্পার্স ফাইল" নয়, এবং আপনি এটিতে কিছু লিখতে বিরক্ত করবেন না - যার অর্থ কার্যত কিছু থাকতে পারে সেখানে - একদম নতুন ডিস্কের মতো!) উদাহরণস্বরূপ:

fallocate -l 10G gentoo_root.img

4
truncateজেএফএসে +1 কার্যকরী; fallocate, খুব বেশি না. একটি পয়েন্ট: আপনি সংখ্যায় একটি দশমিক অন্তর্ভুক্ত করতে পারবেন না, আমার নির্দিষ্ট করার দরকার ছিল 1536G, না 1.5T
ক্যালরিওন

1
আমার মতে fallocateman পৃষ্ঠা, এই শুধুমাত্র সমর্থিত btrfs, ext4, ocfs2, এবং xfsফাইল সিস্টেম
নাথন এস ওয়াটসন-Haigh

দ্রষ্টব্য swaponদুর্ভাগ্যক্রমে প্রাক-বরাদ্দ এক্সটেন্টগুলিতে কাজ করে না, সর্বশেষে আমি চেক করেছিলাম। পরিবর্তে পুরাতন ফ্রিস্পেস ডেটা প্রকাশ করার জন্য একটি ফ্যালোকট বিকল্প থাকা এবং পূর্বনির্ধারিত হিসাবে চিহ্নিত হওয়া সীমাটি না থাকায় এক্সএফএস মেলিং তালিকায় কিছুটা আলোচনা হয়েছিল, সুতরাং স্বপন কাজ করবে। তবে আমি মনে করি না যে কখনও কিছু করা হয়েছিল।
পিটার কর্ডেস

1
এফওয়াইআই, খুব বেশি ডেটা পড়ার চেষ্টা করার /dev/randomফলে এলোমেলো ডেটা চলে যাওয়ার কারণ হতে পারে এবং "যখন এনট্রপি পুলটি খালি থাকে তখন অতিরিক্ত পরিবেশের গোলমাল সংগ্রহ না হওয়া অবধি / ডিভ / র্যান্ডম থেকে পড়া বন্ধ হয়ে যায়" যাতে এটি খুব খুব বেশি সময় নিতে পারে দীর্ঘ সময়
Xen2050

154

লিনাক্স এবং সমস্ত ফাইল সিস্টেম

xfs_mkfile 10240m 10Gigfile

লিনাক্স এবং কিছু ফাইল সিস্টেম (ext4, xfs, btrfs এবং ocfs2)

fallocate -l 10G 10Gigfile

ওএস এক্স, সোলারিস, সুনোস এবং সম্ভবত অন্যান্য ইউনিক্স

mkfile 10240m 10Gigfile

এইচপি-ইউএক্স

prealloc 10Gigfile 10737418240

ব্যাখ্যা

এর mkfile <size>বিকল্প হিসাবে মাইফিল চেষ্টা করুন dd। সঙ্গে -nবিকল্প আকার উল্লেখ করা হয়েছে, কিন্তু ডিস্ক ব্লক বরাদ্দ নেই যতক্ষণ না ডেটা তাদের লেখা হয়। -nবিকল্প ব্যতীত স্থানটি শূন্য-ভরা, যার অর্থ ডিস্কে লেখা, যার অর্থ সময় নেওয়া।

mkfile সানওএস থেকে প্রাপ্ত এবং সর্বত্র পাওয়া যায় না। বেশিরভাগ লিনাক্স সিস্টেমে xfs_mkfileঠিক একইভাবে কাজ করে, এবং নাম সত্ত্বেও এক্সএফএস ফাইল সিস্টেমে নয়। এটি xfsprogs (ডেবিয়ান / উবুন্টুর জন্য) বা অনুরূপ নামযুক্ত প্যাকেজগুলির অন্তর্ভুক্ত।

বেশিরভাগ লিনাক্স সিস্টেমে রয়েছে fallocate, যা কেবলমাত্র কিছু নির্দিষ্ট ফাইল সিস্টেমে কাজ করে (যেমন বিটিআরএফএস, এক্সট৪, ocfs2, এবং xfs), তবে এটি দ্রুততম, কারণ এটি সমস্ত ফাইলের স্থান বরাদ্দ করে (হোলিবিহীন ফাইল তৈরি করে) তবে এটি আরম্ভ করে না এটা।


5
আপনি যেখানে অজানা কথা বলছেন তার এই এমকিফাইলটি কোথায়? এটি ডিফল্ট আরএইচইএল ইনস্টলে নেই।
paxdiablo

2
এটি একটি সোলারিস ইউটিলিটি। আপনি জিপিএল এমকেফিলের জন্য অনুসন্ধান করলে আপনি কিছু উত্স কোড উদাহরণ পাবেন।
মার্টিন বেকেট

5
ওএস এক্স-তে আকর্ষণীয় হিসাবে কাজ করে:mkfile 1g DELETE_IF_LOW_ON_SSD_SPACE.img
ভোলকার রোজ

2
xfs_mkfileউবুন্টুতে এক্সএফস্প্রোগগুলিতে অন্তর্ভুক্ত রয়েছে এবং আমার এক্সট্রি এফএসকবজির মতো কাজ করে। :)
গ্রেগ দুবিকি

97
truncate -s 10M output.file

তাত্ক্ষণিকভাবে একটি 10 ​​এম ফাইল তৈরি করবে (এম 1024 * 1024 বাইট, এমবি দাঁড়ায় 1000 * 1000 - কে, কেবি, জি, গিগাবাইটের সাথে একই ...)

সম্পাদনা করুন: অনেকে উল্লেখ করেছেন যে এটি শারীরিকভাবে আপনার ডিভাইসে ফাইল বরাদ্দ করবে না। এটির সাহায্যে আপনি ডিভাইসে উপলব্ধ স্থান নির্বিশেষে একটি স্বেচ্ছাসেবী বড় ফাইল তৈরি করতে পারেন, কারণ এটি একটি "স্পার্স" ফাইল তৈরি করে।

সুতরাং, এটি করার সময় আপনি ফাইলটি অ্যাক্সেস না করা পর্যন্ত শারীরিক বরাদ্দের পিছনে ফেলে দিবেন। আপনি যদি এই ফাইলটিকে মেমরিতে ম্যাপিং করে থাকেন তবে আপনার প্রত্যাশিত পারফরম্যান্স নাও থাকতে পারে।

তবে এটি এখনও একটি দরকারী কমান্ড


1
এটি চেষ্টা করেও এটি উপলব্ধ ডিস্কের স্থানকে প্রভাবিত করে না। অবশ্যই এটি পূর্ববর্তী হিসাবে বর্ণিত একটি স্পার ফাইল Must
Gringo Suave

7
সমস্যাটির সমাধান না হওয়ায় এটি শীর্ষস্থানীয় উত্তর হওয়া উচিত নয়, fallocateনীচের উত্তরটি দেয়।
গ্রিংগো সুভেভ

4
@ গ্রেঙ্গোসুয়াভ তবে এটি এখনও কিছু লোকের জন্য দরকারী যেগুলির মধ্যে একই-তবে-কিছুটা-আলাদা সমস্যা থাকতে পারে।
এজেম্যানসফিল্ড

@ গ্রেঙ্গোসুয়াভ: অনুরোধ অনুযায়ী এটি একটি বৃহত ফাইল তৈরি বলে মনে হচ্ছে, কেন এটি সমস্যার সমাধান করে না? এছাড়াও ফ্যালোকট উত্তরের অধীনে নোট রয়েছে যে এটি বেশিরভাগ ক্ষেত্রে এমনকি কার্যকর হয় না।
পাভেল আইমেরদা

1
কেন তিনি বিরল ফাইল তৈরি করার পরামর্শ দিচ্ছেন যখন তিনি বলেন যে কাজ করবে না?
hpavc

44

যেখানে সন্ধানটি আপনি যে ফাইলটি বাইটে চান তার আকার - 1।

dd if=/dev/zero of=filename bs=1 count=1 seek=1048575

6
আমি এই পদ্ধতির পছন্দ করি, তবে মন্তব্যকারী কোনও কারণে একটি বিচ্ছিন্ন ফাইল চায় না। :(
প্রথম

3
ডিডি যদি = / দেব / শূন্য = 1 গিগাবাইট ফাইল বিএস = 1000 গণনা = 1000000
ড্যামিয়েন

7
ডিডি যদি = / দেব / শূন্যের = 01 জিবি ফাইলের বিএস = 1024 গণনা = $ ((1024 * 1024))
জাভিয়ের ডেকোরেট

1
বিরল ফাইলগুলির জন্য, truncateএটি আরও ভাল বলে মনে হচ্ছে।
পাভেল Šিমেরদা

36

উদাহরণগুলি যেখানে সন্ধান করা তা হ'ল ফাইলগুলির আকার যা আপনি বাইটে চান

#kilobytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200K

#megabytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200M

#gigabytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200G

#terabytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200T


ডিডি ম্যানপেজ থেকে:

ব্লক এবং বিওয়াইটিএস নিম্নলিখিত গুণক প্রত্যয়গুলি অনুসরণ করতে পারে: সি = 1, ডাব্লু = 2, খ = 512, কেবি = 1000, কে = 1024, এমবি = 1000 * 1000, এম = 1024 * 1024, জিবি = 1000 * 1000 * 1000, জি = 1024 * 1024 * 1024, এবং টি, পি, ই, জেড, ওয়াইয়ের জন্য


এটি এন -1 উপায়ের চেয়ে অনেক বেশি ভাল দেখায় তাই এটি মূলত সমান truncate
পাভেল Šিমেরদা


18

আমি লিনাক্স সম্পর্কে পুরোটা জানি না, তবে সি সি কোডটি আমি বহু বছর আগে ডিসি শেয়ারে নকল বিশাল ফাইলগুলিতে লিখেছিলাম।

#include < stdio.h >
#include < stdlib.h >

int main() {
    int i;
    FILE *fp;

    fp=fopen("bigfakefile.txt","w");

    for(i=0;i<(1024*1024);i++) {
        fseek(fp,(1024*1024),SEEK_CUR);
        fprintf(fp,"C");
    }
}

সিতে আরও ভাল পন্থা থাকতে হবে আপনার ফাইলটিও বন্ধ করতে হবে। একবারে 1 মিলিয়ন লেখার লক্ষ্যে ...
ACV

10

আপনি "হ্যাঁ" কমান্ডও ব্যবহার করতে পারেন। বাক্য গঠনটি মোটামুটি সহজ:

#yes >> myfile

এটি বন্ধ করতে "Ctrl + C" টিপুন, অন্যথায় এটি আপনার সমস্ত উপলব্ধ জায়গা খেয়ে ফেলবে।

এই ফাইলটি চালানোর জন্য রান করুন:

#>myfile

এই ফাইলটি পরিষ্কার করা হবে।


7

আমি মনে করি না আপনি ডিডির চেয়ে বেশি দ্রুত পাচ্ছেন। বাধা হ'ল ডিস্ক; এটিতে কয়েকশো জিবি ডেটা লিখতে আপনি যেভাবেই তা করেন না কেন দীর্ঘ সময় নিতে চলেছে।

তবে এখানে একটি সম্ভাবনা যা আপনার আবেদনের জন্য কাজ করতে পারে। আপনি যদি ফাইলটির বিষয়বস্তুগুলি সম্পর্কে যত্নবান না হন তবে এমন একটি "ভার্চুয়াল" ফাইল তৈরি করবেন যার বিষয়বস্তু একটি প্রোগ্রামের গতিশীল আউটপুট? ফাইলটি খোলার () পরিবর্তে কোনও বাহ্যিক প্রোগ্রামে পাইপ খোলার জন্য পপেন () ব্যবহার করুন। বাহ্যিক প্রোগ্রাম যখনই প্রয়োজন হয় ডেটা তৈরি করে। পাইপটি খোলার পরে, এটি ঠিক নিয়মিত ফাইলের মতো কাজ করে যে পাইপটি খোলার প্রোগ্রামটি (), রিওয়াইন্ড () ইত্যাদি করতে পারে you're আপনি যখন থাকবেন তখন বন্ধ () পরিবর্তে pclose () ব্যবহার করতে হবে পাইপ দিয়ে সম্পন্ন

আপনার অ্যাপ্লিকেশনটির যদি ফাইলটিকে একটি নির্দিষ্ট আকারের প্রয়োজন হয় তবে "ফাইল" এটি কোথায় রয়েছে তা পর্যবেক্ষণ করা এবং "শেষ" পৌঁছে যাওয়ার পরে একটি ইমফ পাঠানো বহিরাগত প্রোগ্রামের উপর নির্ভর করবে।


4

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

উদাহরণস্বরূপ, ফাইলগুলির একটি পুল ডাকুন:

  • / হোম / bigfiles / 512M-এ
  • / হোম / bigfiles / 512M-বি
  • / হোম / bigfiles / 1024M-এ
  • / হোম / bigfiles / 1024M-বি

তারপরে, আপনার যদি একটি অ্যাপ্লিকেশন থাকে যা / home / ওরাকল / লগফিল নামে একটি 1G ফাইলের প্রয়োজন হয়, একটি " ln /home/bigfiles/1024M-A /home/oracle/logfile" চালিত করুন ।

যদি এটি একটি পৃথক ফাইল সিস্টেমে থাকে তবে আপনাকে একটি প্রতীকী লিঙ্ক ব্যবহার করতে হবে।

সম্পর্কযুক্ত অ্যাপ্লিকেশনগুলির মধ্যে কোনও বিরোধী ব্যবহার নেই তা নিশ্চিত করতে A / B / ইত্যাদি ফাইলগুলি ব্যবহার করা যেতে পারে।

লিঙ্ক অপারেশনটি আপনি যত দ্রুত পেতে পারেন তত দ্রুত।


আপনার একটি ছোট পুল বা একটি বড় পুল থাকতে পারে, এটি আপনার পছন্দ। আপনার যেহেতু কমপক্ষে একটি ফাইলের দরকার ছিল, যেহেতু প্রশ্নকর্তা এটিই চেয়েছিলেন। যদি আপনার পুলটিতে একটি ফাইল থাকে তবে আপনি কিছুই হারাবেন না। আপনার যদি বালতিলোড ডিস্ক থাকে (এবং আপনার এটির কম দাম দেওয়া উচিত) তবে কোনও সমস্যা নেই।
paxdiablo

3

জিপিএল এমকিফাইলটি ডিডির চারপাশে একটি (বা) শ স্ক্রিপ্টের মোড়ক; বিএসডি-র মেকফাইল কেবল একটি শূন্য-সহ একটি বাফার মিস করেছে এবং বারবার এটি লিখে। আমি প্রত্যাশা করব না প্রাক্তনটি আউট-পারফরম্যান্স ডিডি করবে। পরবর্তীটি ডিডি প্রবাহিত হতে পারে যদি = / dev / শূন্যটি সামান্য থাকে কারণ এটি পাঠ্যগুলি বাদ দেয় তবে উল্লেখযোগ্যভাবে যে কোনও কিছু ভাল করে তা সম্ভবত একটি বিরল ফাইল তৈরি করে।

সিস্টেম কল অনুপস্থিত যা ডাটা না লিখে কোনও ফাইলের জন্য স্থান বরাদ্দ করে (এবং লিনাক্স এবং বিএসডি এরও অভাব রয়েছে, সম্ভবত সোলারিসও রয়েছে) আপনি ফাইলটি প্রসারিত করতে ftrunc (2) / ট্রুনসেট (1) ব্যবহার করে পারফরম্যান্সে সামান্য উন্নতি পেতে পারেন কাঙ্ক্ষিত আকারে, ফাইলটিকে মেমোরিতে এমএম্যাপ করুন, তারপরে প্রতিটি ডিস্ক ব্লকের প্রথম বাইটে শূন্য-অবিশ্বাস্য ডেটা লিখুন (ডিস্ক ব্লকের আকার খুঁজতে ফাগনকনফ ব্যবহার করুন)।


4
বিএসডি এবং লিনাক্সের প্রকৃতপক্ষে ফলোকট রয়েছে (সম্পাদনা করুন: এটি এখন পজিক্স এবং ব্যাপকভাবে উপলব্ধ)।
টুবু

3

লজ্জাবিহীন প্লাগ: ওটিএফএফস একটি ফাইল সিস্টেম সরবরাহ করে যা নির্বিচারে বড় আকারের (ভাল, প্রায়। এক্সাবাইট বর্তমান সীমাবদ্ধ) উত্পাদিত সামগ্রীর ফাইল সরবরাহ করে। এটি লিনাক্স-কেবল, প্লেইন সি এবং প্রথম দিকে আলফা হয়।

Https://github.com/s5k6/otffs দেখুন ।


3

নিম্নলিখিত সীমাবদ্ধতার সাথে এটি আমি দ্রুত করতে পারি (যা দ্রুত নয় ):

  • বড় ফাইলটির লক্ষ্য হ'ল একটি ডিস্ক পূরণ করা, তাই সংকোচনযোগ্য হতে পারে না।
  • Ext3 ফাইল সিস্টেম ব্যবহার করে। ( fallocateউপলব্ধ নেই)

এটি এর সংক্ষেপে ...

// include stdlib.h, stdio.h, and stdint.h
int32_t buf[256]; // Block size.
for (int i = 0; i < 256; ++i)
{
    buf[i] = rand(); // random to be non-compressible.
}
FILE* file = fopen("/file/on/your/system", "wb");
int blocksToWrite = 1024 * 1024; // 1 GB
for (int i = 0; i < blocksToWrite; ++i)
{
   fwrite(buf, sizeof(int32_t), 256, file);
}

আমাদের ক্ষেত্রে এটি এমবেডড লিনাক্স সিস্টেমের জন্য এবং এটি যথেষ্ট ভালভাবে কাজ করে তবে দ্রুত কিছু পছন্দ করবে।

FYI কমান্ডটি dd if=/dev/urandom of=outputfile bs=1024 count = XXব্যবহারের অযোগ্য হওয়ার জন্য এতটাই ধীর ছিল।

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