چگونه درایوهای دیسک را در لینوکس پارتیشن بندی و فرمت کنیم؟
دیسک، پارتیشن بندی، ext4، mkfs، /dev/sda، فایل سیستم، کلمات کلیدی رایج هنگام کار با سرورهای لینوکس هستند، مدیریت فضای ذخیره سازی یک جنبه اساسی مدیریت سرور است و در ابتدا می تواند ترسناک به نظر برسد. عباراتی مانند format، mount ،پارتیشن تیبل (GPT و MBR) و انتخاب نوع فایل سیستم مناسب(exFAT، FAT32 و NTFS) می توانند موجب پیچیدگی بیشتر موضوع شوند.
این مطلب مفاهیم اساسی پارتیشن بندی دیسک و فرمت دیسک در لینوکس را توضیح میدهد. ما با توضیح اینکه پارتیشن بندی دیسک و فرمت دیسک چیست و چرا لازم است شروع می کنیم. سپس، انواع مختلف فایل سیستم را بررسی می کنیم و به شما در درک نقاط قوت و ضعف آنها کمک میکنیم.
دیسک درایو چیست؟
دیسک درایو، همچنین به عنوان درایو ذخیره سازی شناخته می شود، یک دیوایس ذخیره سازی non-volatile برای کامپیوتر است. این دستگاه حتی در صورت قطع برق سیستم اطلاعات را حفظ میکند. drive ، سیستم عامل، برنامهها و دادههای کاربر را ذخیره نموده و کامپیوتر از آن برای خواندن و نوشتن دادهها استفاده میکند.
انواع دیسک درایو
دیسک درایوها در شکلها و اندازههای مختلفی موجود است که هر کدام سرعت و قابلیتهای ذخیرهسازی خاص خود را دارند. دانستن تفاوتهای آنها میتواند در انتخاب مناسب برای نیازهایتان کمک کند.
- Hard Disk Drives (HDDs): هارد دیسک دادهها را روی صفحات مغناطیسی در حال چرخش ذخیره میکنند و از یک هِد خواندن/نوشتن استفاده مینمایند که در سراسر سطح حرکت میکند. آنها یک گزینه مقرون به صرفه برای ظرفیتهای ذخیره سازی بزرگ هستند، اما ماهیت مکانیکی آنها باعث کاهش زمان دسترسی میشود.
- Solid-State Drives (SSDs): اس اس دیها از حافظه فلش برای ذخیره دادهها استفاده میکنند، قطعات متحرک را حذف نموده و سرعت خواندن/نوشتن بسیار سریعتری نسبت به هارد دیسکها ارائه میدهند که این منجر به زمان راهاندازی سریعتر، بارگذاری برنامه و پاسخگویی کلی سیستم میشود، اگرچه معمولا هزینه هر گیگابایت بالاتر است.
- (NVMe SSDs (Non-Volatile Memory Express SSDs: اس اس دیهای NVMe نوعی SSD هستند که از رابط پرسرعت PCIe استفاده میکنند. آنها حتی عملکرد بهتری نسبت به SSD های SATA استاندارد ارائه می دهند. این رابط پهنای باند بسیار بالاتر و تاخیر کمتری را فراهم میکند و آنها را برای بارهای کاری بسیار ایدهآل میسازد.
پارتیشن بندی دیسک چیست؟
پارتیشن بندی دیسک یک جنبه اساسی از مدیریت ذخیره سازی است که یک هارد دیسک فیزیکی(یا سایر دستگاه های ذخیره سازی مانند SSD ) را به بخشهای منطقی متعدد تقسیم میکند. مدیران سیستم این تقسیم را برای سازماندهی دادهها، جداسازی سیستم عاملها یا بهبود عملکرد سیستم انجام میدهند.
هر پارتیشن به عنوان یک واحد مستقل عمل میکند، تقریبا مانند یک دیسک فیزیکی جداگانه. سپس سیستم عامل هر پارتیشن را به عنوان یک حجم (volume) مجزا در نظر میگیرد. این جداسازی به چندین فایل سیستم و سیستم عامل اجازه میدهد تا در یک درایو فیزیکی واحد وجود داشته باشند و فرآیندهای بکاپگیری و بازیابی را ساده میکند.
نحوه پارتیشن بندی دیسک درایو در لینوکس
در این بخش راهنمای گام به گام برای پارتیشن بندی درایو دیسک در لینوکس آمده است:
مرحله 1: دیسک را شناسایی کنید
قبل از پارتیشن بندی دیسک، باید device name صحیح را شناسایی کنید. از دستور lsblk در ترمینال خود برای لیست کردن تمام block deviceها (دیسک ها و پارتیشن) متصل به سیستم خود استفاده کنید.
پس از اجرای دستور، خروجی را به دقت بررسی کنید و به ستون های NAME، SIZE، TYPE و MOUNTPOINT توجه کنید.
شما به دنبال دیسکی هستید که عبارت disk نشان داده شده باشد که در حال حاضر نصب نشده است (بدون MOUNTPOINT) یا دیسکی است که مطمئن هستید می خواهید دوباره پارتیشن بندی کنید (که منجر به از دست رفتن تمام داده های ذخیره شده روی آن می شود) NAME معمولا چیزی مانند /dev/sda، /dev/sdb، /dev/nvme0n1 و غیره خواهد بود.
کاملا مطمئن باشید که نام دیوایس صحیح را دارید چون پارتیشن بندی دیسک اشتباه منجر به از دست دادن اطلاعات می شود.
برای به حداقل رساندن خطر، درایوهای خارجی غیر ضروری را جدا کنید.
مرحله 2: یک ابزار پارتیشن بندی را انتخاب کنید
لینوکس چندین ابزار برای پارتیشن بندی دیسکها ارائه میدهد که هر کدام نقاط قوت خود را دارند. برای تعامل خط فرمان، fdisk و parted انتخابهای محبوبی هستند.. fdisk یک ابزار کلاسیک و منو محور است که برای اکثر کارها مناسب است، به ویژه در دیسک هایی که از طرح پارتیشن MBR قدیمی استفاده می کنند. از طرف دیگر، parted هم از طرح MBR و هم از طرح جدیدتر GPT پشتیبانی میکند و اغلب برای دیسکهای بزرگتر از 2 ترابایت ترجیح داده می شود.
ابزار cfdisk یک رابط مبتنی بر متن ارائه میکند که حد وسطی بین سادگی fdisk و قدرت parted ارائه میکند. GParted یک گزینه پرکاربرد و کاربرپسند برای یک رابط گرافیکی است، اما برای سرورهای لینوکس مفید نیست زیرا معمولا رابط کاربری گرافیکی ندارند.
ما به دلیل تطبیق پذیری این راهنما روی استفاده از parted برای این راهنما تمرکز خواهیم کرد. برای شروع جلسه پارتیشن بندی تعاملی، ما از parted /dev/sdX استفاده می کنیم . (به جای /dev/sdX با نام واقعی دیسک).
مرحله 3: یک پارتیشن جدید ایجاد کنید
هنگامی که parted را با دیسک صحیح شروع کردید (به عنوان مثال sudo parted /dev/sdb)، در خط فرمان parted خواهید بود. ابتدا جدول پارتیشن فعلی را با استفاده از دستور print چاپ کنید تا دستگاه را دوباره چک کنید.
- انتخاب نوع جدول پارتیشن (در صورت نیاز): اگر دیسک کاملا نو است یا می خواهید نوع جدول پارتیشن را تغییر دهید، از دستور mklabel استفاده کنید. به عنوان مثال، (parted) mklabel GPT.
- ایجاد پارتیشن: از دستور mkpart استفاده کنید. از شما خواسته می شود موارد زیر را وارد کنید:
- نوع پارتیشن (Partition type): گزینههای primary ، extended (فقط در MBR)، یا logical (فقط در یک پارتیشن توسعه یافته). با GPT، تقریبا همیشه اولیه را انتخاب می کنید.
- نوع فایل سیستم (File system type): این راهنمایی برای فرمت بعدی است. در واقع پارتیشن را فرمت نمیکند. ext4، fat32، ntfs و غیره را در صورت لزوم انتخاب کنید.
- شروع (Start): نقطه شروع پارتیشن را به مگابایت (MB) یا گیگابایت (GB) یا به صورت درصدی از دیسک (مثلا 0٪) مشخص کنید.
- پایان (End): نقطه پایان پارتیشن را با استفاده از واحدهای شروع (مثلا 100 گیگابایت یا 100%) مشخص کنید.
مثال: یک پارتیشن اصلی با استفاده از فرمت ext4 ایجاد میکند که کل دیسک را میگیرد.
(parted) mkpart primary ext4 0% 100%
- Repeat (در صورت نیاز): دستور mkpart را برای هر پارتیشن اضافی که می خواهید ایجاد کنید تکرار کنید.
مرحله 4: پارتیشن را تایید کنید
پس از ایجاد پارتیشنها، می توانید تغییرات را با استفاده از دستور print در اعلان parted تایید کنید. این دستور جدول پارتیشن فعلی را نمایش میدهد و شماره پارتیشن، نقاط شروع و پایان، اندازه، نوع فایل سیستم (hint) و هر پرچمی را نشان میدهد. این خروجی را با دقت بررسی کنید تا مطمئن شوید که پارتیشن ها همان طور که مد نظر شماست هستند.
اگر چیزی نادرست به نظر میرسد، می توانید از rm از دستور <rm <number> (به عنوان مثال rm 1 برای حذف پارتیشن شماره 1) برای حذف یک پارتیشن در قسمت parted و ایجاد مجدد آن استفاده کنید.
پس از رضایت، عبارت quit را تایپ کنید تا از parted خارج شوید و تغییرات را در دیسک ذخیره کنید.
فرمت دیسک چیست؟
فرمت دیسک یک دستگاه ذخیره سازی (کل دیسک یا یک پارتیشن) را برای استفاده توسط یک سیستم عامل آماده می کند. این فرآیند یک فایل سیستم خاص را ایجاد میکند که یک روش ساختاریافته برای سازماندهی و ذخیره فایلها است. سیستم عامل از این فایل سیستم برای مدیریت دادههای روی دستگاه استفاده می کند. فرمت زمینهای را ایجاد می کند که نحوه ردیابی فایل ها، دایرکتوری ها و فضای خالی توسط سیستم عامل را مشخص کند.
vps یک ماشین مجازی کامل است که امکان دسترسی SSH طبق آموزش را به آن خواهید داشت.
خرید vps در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
فایل سیستم چیست؟
یک فایل سیستم ساختار زیربنایی است که یک سیستم عامل برای مدیریت داده ها در یک دستگاه ذخیره سازی استفاده نموده و نحوه نامگذاری، ذخیره، سازماندهی و دسترسی به فایلها را تعیین میکند. آن را به عنوان کتابدار دیسک سخت خود در نظر بگیرید که همه چیز را در کجا قرار دارد و چگونه آن را بازیابی کنید. بدون فایل سیستم ، یک دستگاه ذخیره سازی فقط مجموعه ای از داده های سازماندهی نشده است.
چندین فرمت فایل سیستم محبوب وجود دارد:
- ext4: فایل سیستم ext4 استاندارد و پرکاربردترین فایل سیستم برای توزیعهای لینوکس است. این یک فایل سیستم ژورنال است که تغییرات را قبل از نوشتن روی دیسک ثبت میکند. قابلیت اطمینان را بهبود میبخشد و خطر خراب شدن داده ها را در صورت قطع برق یا خرابی سیستم کاهش میدهد. ext4 عملکرد عالی ارائه می دهد، فایل ها و حجم های بزرگ را پشتیبانی می کند و به طور کلی بهترین انتخاب برای محیط سرور لینوکس است. همچنین شامل ویژگیهای تخصیص تاخیری و چند بلوکی برای بهبود عملکرد نوشتن است.
- NTFS: فایل سیستم اصلی است که توسط سیستم عاملهای ویندوز استفاده میشود. مانند ext4، این یک فایل سیستم ژورنالینگ با قابلیت اطمینان و قابلیت بازیابی اطلاعات بهبود یافته است. NTFS از ویژگی هایی مانند مجوزهای فایل، رمزگذاری (BitLocker)، سهمیه دیسک و کپی های سایه (برای پشتیبان گیری و بازیابی نسخه های قبلی فایل ها) پشتیبانی میکند. همچنین از اندازه فایل ها و پارتیشن های بسیار بزرگتر از سیستم های قدیمی FAT پشتیبانی می کند.
- FAT32 : یک فایل سیستم قدیمی است که به دلیل سازگاری گسترده اش شناخته شده است. معمولا روی درایوهای فلش USB و کارتهای SD استفاده میشود، زیرا تقریبا توسط هر سیستم عاملی از جمله Windows، macOS و Linux قابل خواندن و نوشتن است. با این حال، FAT32 محدودیت های قابل توجهی دارد: حداکثر اندازه فایل تنها 4 گیگابایت و حداکثر حجم عملی 2 ترابایت را پشتیبانی میکند. این باعث می شود برای ذخیره فایل های بزرگ مانند فایل های ویدئویی مدرن نامناسب باشد.
- exFAT: یک فایل سیستم توسعه یافته توسط مایکروسافت است که برای غلبه بر محدودیت های FAT32 و در عین حال سازگاری خوب بین پلتفرم ها طراحی شده است. این نرم افزار از اندازه فایل ها و پارتیشن های بسیار بزرگ پشتیبانی می کند و برای ذخیره فایل های رسانه ای بزرگ و استفاده از درایوهای خارجی بزرگ مناسب است. exFAT اغلب در کارتهای SDXC و درایوهای USB بزرگ زمانی که به سازگاری با ویندوز و macOS نیاز است استفاده میشود. اغلب این سیستم فایل ترجیحی برای درایوهای کوچک USB است.
نحوه فرمت کردن دیسک درایو در لینوکس
در این بخش راهنمای گام به گام برای قالببندی درایو دیسک (یا دقیقتر، یک پارتیشن) در لینوکس آمده است:
مرحله 1: پارتیشن را برای فرمت مشخص کنید
قبل از فرمت، باید نام دقیق دیوایس پارتیشنی را که می خواهید فرمت کنید، بدانید. فرمت کردن پارتیشن اشتباه منجر به از دست دادن اطلاعات غیرقابل برگشت می شود.
از دستور lsblk در ترمینال خود برای لیست کردن تمام دستگاه های بلوک و پارتیشن های آنها استفاده کنید. خروجی را با دقت بررسی کنید و به ستون های NAME، SIZE، TYPE و MOUNTPOINT توجه کنید.
شما به دنبال پارتیشن خاصی هستید (به عنوان مثال، /dev/sda1، /dev/sdb2، /dev/nvme0n1p1 – p و عدد نشان دهنده یک پارتیشن است، نه کل دیسک). در ستون TYPE مقدار part را برای پارتیشن ها نشان میدهد. SIZE را دوبار بررسی کنید تا مطمئن شوید با پارتیشنی که قصد فرمت کردن آن را دارید مطابقت دارد.
مرحله 2: پارتیشن را Unmount کنید
اگر پارتیشنی که قصد فرمت کردن آن را دارید در حال حاضر mount شده است (به این معنی که به صورت دایرکتوری قابل دسترسی است)، باید قبل از فرمت آن را از حالت mount خارج کنید. از دستور umount و به دنبال آن نام دستگاه یا mount point استفاده کنید. به عنوان مثال:
• sudo umount /dev/sdX1 (replace /dev/sdX1 with the actual partition name)
• sudo umount /mnt/mydirectory (if the partition is mounted at /mnt/mydirectory)
اگر دستور umount گزارش دهد که دستگاه مشغول است، به این معنی است که یک فرآیند هنوز از پارتیشن استفاده می کند. قبل از اینکه بتوانید آن را unmount کنید، باید آن فرآیند را شناسایی و متوقف کنید.
مرحله 3: پارتیشن را فرمت کنید
از دستور mkfs با گزینه مناسب برای فایل سیستم انتخابی خود استفاده کنید. قالب کلی این است:
sudo mkfs -t [filesystem type] [options] /dev/sdX1.
گزینه -t نوع فایل سیستم را مشخص میکند. در اینجا دستورات خاص وجود دارد:
- برای ext4:
sudo mkfs -t ext4 /dev/sdX1
- برای FAT32:
sudo mkfs -t vfat -F 32 /dev/sdX1
- برای NTFS:
sudo mkfs -t ntfs /dev/sdX1
- برای exFAT:
sudo mkfs -t exfat /dev/sdX1
به یاد داشته باشید که /dev/sdX1 را با نام پارتیشن واقعی در مثالهای بالا جایگزین کنید.
مرحله 5: فرمت را تایید کنید
پس از فرمت پارتیشن، می توانید نتیجه را با استفاده از چندین روش تایید کنید:
- lsblk -f: این دستور نوع فایل سیستم هر پارتیشن (FSTYPE) و UUID را نشان می دهد. بررسی کنید که FSTYPE با آنچه در نظر گرفته اید مطابقت داشته باشد.
- blkid /dev/sdX1: این دستور به طور خاص UUID و TYPE (فایل سیستم) پارتیشن مشخص شده را نشان می دهد.
- Mount and check: پارتیشن را Mount کنید (به عنوان مثال sudo mount /dev/sdX1 /mnt) و سپس از df -h برای بررسی فضای دیسک و نوع فایل سیستم استفاده کنید. این تایید می کند که پارتیشن قابل استفاده است. پس از آزمایش، می توانید پارتیشن را با دستور sudo umount /dev/sdX1 یا sudo umount /mnt جدا کنید اگر در آنجا نصب شده است.
جمع بندی:
درک فایل سیستمهای مختلف، انتخاب ابزارهای مناسب و مهمتر از همه، بررسی مجدد هر دستور قبل از اجرا برای حفظ یکپارچگی داده ها و ثبات سیستم بسیار مهم است. به یاد داشته باشید که همیشه قبل از هر گونه تغییر در پارتیشن ها از داده های مهم نسخه پشتیبان تهیه کنید.