ولی فک میکنم دایرکتوری ها روی فایل سیستم سوار میشن ، چون اول پارتیشن رو فرمت میکنیم با ext4 بعد روت رو مریزیم توش .
فرض کنید توی محیط یه توزیع زنده هستید.
شما اول یه block device رو (پارتیشن یه نوع block device هست) رو با چیزی مثل ext4 فرمت میکنید. بعد جایی رو که فرمت کردید روی یه دایرکتوری مثل /mnt/ سوار میکنید و اطلاعات رو میریزید داخلش. بعد گراب رو نصب و تنظیم میکنید. در آخر هم نصب تموم میشه و شما کامپیوتر رو خاموش میکنید.
وقتی کامپیوتر رو روشن میکنید، اول گراب میاد بالا و تنظیماتش رو میخونه. بعد با توجه به اون تنظیمات، یه منو درست میکنه که شما میبینید. و یه گزینه رو انتخاب میکنید تا بوت بشه.
وقتی گراب، کرنل رو اجرا میکنه، یه سری پارامتر هم به کرنل میده تا کرنل بدونه چیکار کنه. اینکه چه پارامتری بده، به تنظیمات گراب و منویی که انتخاب کردید بستگی داره. میشه این پارامترها رو قبل از اجرای کرنل، توی گراب تغییر داد، ولی اینکار دایمی نیست، برای دایمی کردن، باید تنظیمات گراب رو عوض کرد.
یکی از این پارامترها، root هست. جلوی روت چیزی نوشته میشه که قراره به عنوان / سوار بشه.
مثال پایین رو ببینید، این باعث میشه sda1 به عنوان / سوار بشه.
root=/dev/sda1
الان خیلی کم پیش میاد که مستقیما sda1 رو به کرنل داد، معمولا UUID رو میدن. اینجوری
root=UUID=XXXXXXXXXXXXXXXX
طول اون X ها بر حسب فایلسیستم فرق داره. بهجای X ها، UUID قرار میگیره.
این باعث میشه کرنل بره و توی مسیر زیر رو بگرده
/dev/disk/by-uuid
توی اون دایرکتوری لینکهایی وجود داره به block device های داخل /dev/، مثل sda1. دلیل استفاده از UUID این هست که با تغییر جای دیسک یا وصل کردن یه چیز دیگه، تغییر نمیکنند.
مثلا اگه شما دوتا هارد داشته باشید که به ترتیب به عنوان sda و sdb شناخته میشن، ممکنه با عوض کردن جای اتصال توی مادربرد، اولی به اسم sdb و دومی به اسم sda شناخه بشه، که مشکل درست میکنه.
وقتی کرنل شروع به کار میکنه، هیچ چیزی وجود نداره که بخواهد /dev/ رو نگهداری کنه. به خاطر همین چیزی هست به اسم initramfs، وقتی کرنل تازه شروع به کار میکنه، initramfs یه فایلسیستم مجازی توی ram میسازه که به عنوان / سوار میشه، بعد دستگاهها توی /dev/ نمایان میشن و یه سری کارها انجام میشه، بعد از انجام اون کارها، چیزی که توی پارامتر root مشخص شده بود، به عنوان / سوار میشه، کرنل از این روت جدید استفاده میکنه و چیزهای مورد نیاز رو به این روت جدید منتقل میکنه.
کرنل init رو اجرا میکنه، (اکثر مواقع systemd)، init تنظیماتش رو میخونه، کارهای لازم رو انجام میده و بعد شما صفحه ورود رو مشاهده میکنید.