امیر قراجه داغی
امیر قراجه داغی
خواندن ۳ دقیقه·۲ سال پیش

نحوه انتقال دایرکتوری Home به دیسک ذخیره سازی جدید در لینوکس

در هر سیستم لینوکسی، یکی از دایرکتوری هایی که مطمئنا اندازه آن افزایش می یابد، دایرکتوری home/ می باشد. دلیل این امر این است که دایرکتوری‌های حساب‌های سیستم (کاربران) در home/ به جز حساب ریشه یا root وجود دارند. در دایرکتوری home/ کاربران به طور مداوم اسناد و فایل‌های دیگر را ذخیره می‌کنند. دایرکتوری مهم دیگری با همین رفتار var/ است، که حاوی فایل‌های log است که با ادامه استفاده از سیستم به مرور زمان، اندازه آن به تدریج افزایش می‌یابد، مانند فایل‌های گزارش، فایل‌های وب، فایل‌های print spool و غیره. هنگامی که این دایرکتوری ها پر می شوند، این می تواند مشکلات مهمی در سیستم فایل ریشه ایجاد کند که منجر به خرابی بوت سیستم یا برخی مسائل مرتبط دیگر می شود. با این حال، گاهی اوقات شما فقط می توانید پس از نصب سیستم خود و پیکربندی همه دایرکتوری ها در سیستم فایل روت (root file system/partition) متوجه این موضوع شوید.

بعضی مواقع شاید با این مساله روبه رو شدید که چطور دیسک جدیدی را که به سیستم اضافه شده را به عنوان دایرکتوری home/ به سیستم لینوکس معرفی کنیم که با این کار فضای ذخیره سازی بیشتری را به دایرکتوری Home اختصاص داده اید و دایرکتوری home/ از پارتیشن روت جدا شده و از مشکلات دیگری که مطرح شد جلوگیری شده است.

توجه: ما فرض می کنیم که شما دیسک جدید را به سیستم متصل کرده اید.

اکنون دیسک جدید را اضافه کرده و پارتیشن لازم را ایجاد کرده ایم. اکنون زمان انتقال دایرکتوری home/ به یکی از پارتیشن ها فرا رسیده است. برای استفاده از سیستم فایل، باید آن را در یک نقطه اتصال به فایل سیستم ریشه نصب کرد. ( دایرکتوری هدف home/ )

ابتدا با استفاده از دستور df فایل سیستم های قابل استفاده را لیست کنید.

با ایجاد یک دایرکتوری جدید srv/home/ شروع می کنیم که در آن می توانیم dev/sda1/ را فعلاً mount کنیم.سپس محتوای home/ را با استفاده از دستور rsync یا دستور cp به srv/home/ منتقل کنید ( عملاً در dev/sda1/ ذخیره خواهند شد).

$ mount /dev/sda1 /srv/home $ rsync -av /home/* /srv/home/ $ cp -aR /home/* /srv/home/

پس از آن، با استفاده از ابزار diff تفاوت بین دو دایرکتوری را مشاهده می کنیم ، اگر همه چیز درست پیشرفته است، ادامه دهید.

$ diff -r /home /srv/home

پس از آن، تمام محتوای قدیمی موجود در دایرکتوری home/ را به صورت زیر حذف کنید.

$ rm -rf /home/*

بعد srv/home/ را unmount کنید.

$ umount /srv/home

در نهایت باید فایل‌سیستم /dev/sda1 را به‌عنوان /home متصل (mount) کنیم.

$ mount /dev/sda1 /home $ ls -l /home

توجه : اگر پارتیشن شما شامل UUID است از دستور زیر برای دریافت UUID پارتیشن استفاده کنید.

$ blkid /dev/sda1

و یا با جستجوی Disk می توانید مشخصات دیسک ذخیره سازی اضافه شده را مشاهده کنید :

,مشاهده مشخصات دیسک جدید اضاقه شده
,مشاهده مشخصات دیسک جدید اضاقه شده
  • تغییرات بالا فقط برای بوت فعلی باقی خواهند ماند، برای دائمی کردن تغییرات دستور زیر را وارد کنید.
$ sudo vim etc/fstab

خط زیر را در /etc/fstab اضافه کنید تا تغییرات دائمی شود.

UUID=4c8f62e9-a141-4d10-bfdd-3a96589eb851 /home ext4 defaults 0 2

فایل را با wq: ذخیره کنید و سیستم را ریبوت کنید.

دستور زیر را اجرا کنید مشاهده می کنید که دایرکتوری home با موفقیت به دیسک جدید منتقل شده است.



لینوکسابونتومتن بازlinuxMove Home Directory
زبان دیدنی ترین پروژه منبع باز بشریت است. ?
شاید از این پست‌ها خوشتان بیاید