র‌্যামে রুটফিস সহ আমার কীভাবে লিনাক্স বুট হবে?


16

রুটফগুলি একটি স্কোয়াশফের চিত্র এবং আমার বুটলোডার এটিকে SDRAM এর কোনও ঠিকানায় লোড করছে। কার্নেলের কাছে আমার কী পরামিতিগুলি পাস করতে হবে যাতে এটি সেখান থেকে রুটফগুলি মাউন্ট করতে পারে? স্কোয়াশফ সমর্থনটি অন্তর্নির্মিত এবং এটি ইতিমধ্যে কাজ করে

root=/dev/mtdblock2 rootfstype=squashfs  

ফ্ল্যাশ থেকে বুট করার জন্য।

সম্পাদনা: এটি একটি এমআইপিএস ভিত্তিক এমবেডড ডিভাইস, কাস্টম বুটলোডার ব্যবহার করে। সাধারণত, বুটলোডারটি ফ্ল্যাশ থেকে সংক্ষেপিত কার্নেলটি SDRAM এ বের করে এবং তারপরে কার্নেল / dev / mtd block2 কে রুটফেস হিসাবে মাউন্ট করে। আমি বুটলোডারটিকে উন্নত করার চেষ্টা করছি যাতে এটি কোনও র‌্যামে একটি চিত্র ডাউনলোড করতে পারে এবং ফ্ল্যাশকে না লিখে বুট করতে পারে।

লিনাক্সটি কীভাবে র‌্যামের মধ্যে একটি ফাইল-সিস্টেম চিত্র মাউন্ট করতে হয় সেটিকে আমি রুটফেস হিসাবে বুঝতে পারি না।


দয়া করে আরও ভালভাবে বর্ণনা করুন, আপনি যদি স্কোয়াশফের কাজ ইতিমধ্যে জানেন তবে আপনি কী অর্জন করতে চাইছেন। আপনি কীভাবে জানেন যে এটি কাজ করে? কি ঘটেছে? এবং সবচেয়ে বড় কথা, আপনি যেভাবে চান সেটি কী কাজ করে না ?
rozcietrzewiacz

1
এছাড়াও, ডিভাইসটি কোন বুটলোডার ব্যবহার করে?
rozcietrzewiacz

আমি মনে করি আপনি যদি মেমডিস্ক ব্যবহার করেন (SYSLINUX থেকে) কার্নেল হিসাবে, এটি মেমরিতে পুরো চিত্রটি লোড করে এবং এটি থেকে বুট করে
golimar

উত্তর:


10

আমি একটি initramfs ব্যবহার করব। ( http://www.kernel.org/doc/Docamentation/filesystems/ramfs-rootfs-initramfs.txt )

অনেকগুলি লিনাক্স ডিস্ট্রিবিউশন বুট প্রক্রিয়া চলাকালীন একটি initramfs (কোনও initrd দিয়ে বিভ্রান্ত না হওয়ার জন্য তারা পৃথক পৃথক) ব্যবহার করে, বেশিরভাগই বুট প্রক্রিয়ার খুব প্রথম দিকে ইউজারস্পেস প্রোগ্রাম শুরু করতে সক্ষম হতে able তবে আপনি এটি যা চান তার জন্য এটি ব্যবহার করতে পারেন can

একটি আরআরআরডি-র মাধ্যমে ইনিআরআইএমএফের সুবিধাটি হ'ল একটি ইআর্রামফ একটি টিএমপিএস ফাইল সিস্টেম ব্যবহার করে যখন একটি আরআরআরডি একটি র‌্যাম ব্লক ডিভাইস ব্যবহার করে। এখানে মূল পার্থক্য হ'ল একটি আরআরডি-র জন্য আপনার অবশ্যই সমস্ত সিস্টেম ফাঁকা রাখতে হবে ফাইল সিস্টেম সিস্টেমের জন্য, এমনকি যদি আপনি সমস্ত স্থান ব্যবহার না করে থাকেন। সুতরাং আপনি যদি ফাইল সিস্টেমের স্থানটি ব্যবহার না করেন তবে আপনি মেষটি নষ্ট করেন যা একটি এম্বেড থাকা ডিভাইসে প্রায়শই একটি দুষ্প্রাপ্য সংস্থান। Tmpfs একটি ফাইল সিস্টেম যা ভেড়ার বাইরে চলে যায়, তবে বর্তমানে কেবল ফাইল সিস্টেমের মধ্যে যতটা র‌্যাম ব্যবহার করা হচ্ছে তা ব্যবহার করে। সুতরাং আপনি যদি কোনও টিএমপিএফ থেকে কোনও ফাইল মুছে ফেলেন তবে সেই র্যামটি তাত্ক্ষণিকভাবে মুক্তি দেওয়া হবে।

এখন সাধারণত একটি initramfs অস্থায়ী হয়, কেবল বুট প্রক্রিয়াটির প্রথম দিকে কিছু প্রোগ্রাম চালাতে ব্যবহৃত হয়। এই প্রোগ্রামগুলি সঞ্চালনের পরে, নিয়ন্ত্রণটি একটি প্রকৃত ডিস্কে চলমান প্রকৃত ফাইল সিস্টেমে স্থানান্তরিত হয়। তবে আপনাকে এটি করতে হবে না। আপনাকে অনির্দিষ্টকালের জন্য ইনি্রামফের বাইরে চলে যাওয়া থেকে বিরত কিছু নেই।


সুতরাং আমি আসলে একটি সিস্টেম সেটআপ করার চেষ্টা করেছি যা "অনির্দিষ্টকালের জন্য" চালিয়ে যায় "runs সিস্টেমটি বেশিরভাগ অংশে প্রস্তুত, তবে আমার কিছু সমস্যা হয়েছিল - আমি ভাবছি আপনি যদি কিছুটা আলো চালাতে সক্ষম হন তবে? প্রশ্ন এখানে পোস্ট করা হয়েছে
dtmland


0

আমি phramএই উদ্দেশ্যে ড্রাইভারটি ব্যবহার করি : এটি শারীরিক স্মৃতি ব্যবহার করে একটি এমটিডি ডিভাইস অনুকরণ করে, যার অর্থ আপনি পরীক্ষার / বিকাশের জন্য ঠিক একই রুটফেস চিত্রটি ব্যবহার করতে পারেন যা আপনি পরবর্তী সময়ে সত্যিকারের ফ্ল্যাশে জ্বলতে চলেছেন। কার্নেল কমান্ড লাইনের necesary ম্যাজিক কিছু হবে

phram.phram=rootfs,0x100000,9Mi root=/dev/mtdblock0 memmap=9M\$100000

মনে রাখবেন যে memmapকার্নেল নিজেই সেই মেমরিটি ব্যবহার করার চেষ্টা করে না তা নিশ্চিত করার জন্য আপনার যুক্তিও প্রয়োজন । 9MB হ'ল আমার রুটফেসগুলি (বা ছিল) কত বড়। আমার বুটলোডারটিতে \ আগের $ প্রয়োজন, আপনার নাও থাকতে পারে। আমি যে ঠিকানাটি বেছে নিয়েছি তা ইচ্ছামত রয়েছে, কারণ আপনার ডিভাইসে কীভাবে শারীরিক স্মৃতি রচনা করা হয় তা আমি জানি না, তাই আপনার পক্ষে এটি বোঝার জন্য একটি চয়ন করুন। আমি ধরে নিই যে আপনি আগে এই ঠিকানায় আপনার রুটফেসগুলি লোড করতে tftp বা কিছু ব্যবহার করেছিলেন

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