اخیرا یک هارد SSD خریدم و بر آن شدم تا آرچی که روی HDD نصب داشتم منتقل کنم روی SSD. کار سختی نیست، ولی باید چهارچوب قضیه رو توی ذهنتون ترسیم کنین و بدونین که دقیقا قراره چه کاری بکنین.
سناریوهای مختلف و روش های مختلفی برای این کار وجود داره. اصطلاحا به این کار میگن clone کردن. یعنی شما یک کپی نظیر به نظیر از یک فایل سیستم (درایو) در یک فایل سیستم دیگه میسازید. و پیکربندی های مربوط به بوت لودر رو هم انجام میدید و سیستم با دیسک جدید بالا میاد.
تیتروار قراره چه کار بکنیم؟
چند سناریو رو مطرح میکنم:
اینکه چه سناریویی با شما همخوانی داره، خدا میدونه! به تعداد آدم ها راه هست برای پارتیشن بندی برای لینوکس! من در این مطلب کلیت ماجرا رو میگم. شما بر اساس شرایط خودتون باید عمل کنید.
توجه: من هیچ ضمانتی برای سالم موندن دیتای شما نمیکنم. شما خودتون باید با مطالعه ویکی آرچ به یک جمع بندی برسید و مراحل رو دقیق طی کنید.
اول اینکه بهتره پارتیشن بندی شما در دیسک جدید، مشابه پارتیشن بندی در دیسک قبلی باشه. البته این ضروری نیست، اما متفاوت کردن اینها دردسرهای خودش رو خواهد داشت. مثلا اگه یک پارتیشن boot دارید و یک پارتیشن root دارید و یک پارتیشن home سعی کنید در دیسک جدید هم همین ها رو بسازید. با فرمت یکسان. اما اندازشون مهم نیست. مثلا میتونید در دیسک جدید پارتیشن boot رو ۱ گیگ انتخاب کنید درحالی که قبلا ۲۰۰ مگابایت بوده! مثلا!
کسی که آرچ نصب کرده، قاعدتا باید با fdisk
و پارتیشن بندی آشنا باشه. کاری که میکنید اینه که یک نسخه لایو آرچ رو با یک مموری بالا میارید و دیسک جدید رو با fdisk پارتیشن بندی میکنید. در این مرحله باید دقت کنید که قصد پارتیشنبندی از نوع gpt دارید یا mbr؟
اینکه بتونید اطلاعات رو مستقیم روی SSD کلون کنید یا اول روی یک مموری کلون کنید و بعد از روی اون روی SSD کلون کنید، وابسته به شرایط خاص شما است. اگر مستقیم اینکار رو بکنید خیلی کار راحت تری خواهید داشت. من برای اینکار از rsync استفاده کردم. روش های مختلفی هست، اما من این روش رو انتخاب کردم. یک نمونه از دستور rsync برای کلون رو در زیر میبینیم:
# rsync -aAXHv --exclude='/dev/*' --exclude='/proc/*' --exclude='/sys/*' --exclude='/tmp/*' --exclude='/run/*' --exclude='/mnt/*' --exclude='/media/*' --exclude='/lost+found/' --exclude='/home/*/.cache/*' --exclude='/home/*/.thumbnails/*' --exclude='/home/*/.gvfs/*' --exclude='/home/*/.local/share/Trash/*' --exclude='/va/lib/dhcpcd/*' --exclude='/var/cacche/pacman/*' /hda1 /sda2
دستور بالا محتوای داخل مسیر /hda1
رو در مسیر /sda2
کلون میکنه. منهای مواردی که استثنا قایل شدیم. اما این دو تا مسیر از کجا اومدن؟!
شما وقتی با لایو بالا میاید، و دیسک SSD رو پارتیشن بندی میکنید، باید پارتیشن های مبدا و مقصد رو مونت کنید که بتونید اونها رو بخونید. من در اینجا دو تا فولدر به این نامها ساختم، پارتیشن های مربوطه رو داخل اونها مونت کردم، و عملیات رو در اونها شروع کردم. حالا ممکنه مقصد اولیه شما یک فلش مموری باشه، یا مستقیم خود SSD.
اگر مقصد اولیه شما فلش مموری است، بایستی فلش مموری رو هم فرمت کرده باشید. مثلا یه فلش مموری بردارید و فرمت اون رو به ext4 تغییر بدید. تا وقتی اطلاعات از روی پارتیشن root میخوان روی فلش کپی بشن، مشکلی پیش نیاد. در این صورت برای کپی اطلاعات از روی فلش مموری به SSD دیگه نیازی به excludeها نداریم و دستور ما خلاصه میشه. مثلا:
# rsync -aAXHv /sdc1 /sda2
در این مثال، sdc1 فلش مموری ما است، و sda2 پارتیشن SSD ما است.
در روش دیگه ای تحت عنوان Partclone اطلاعات به صورت یک فایل ایمیج ذخیره میشن، و بعد از روی اون ایمیج استخراج میشن. من این روش رو نرفتم. اما به نظرم برای مواقعی که میخواید از فلش مموری استفاده کنید بد نباشه.
بعد از اینکه اطلاعات پارتیشن های خودتون رو کلون کردید، نوبت نصب بوت لودر روی دیسک جدید میرسه. باز اینجا باتوجه به شرایط شما، مراحل متفاوت خواهد بود. اما درست مثل وقتیه که موقع نصب آرچ بوت لودر رو نصب کردید. بنابراین:
/sda2/boot
مونت کنیم. (شای مسیر پارتیشن بوت شما /sda2/efi
باشه)arch-chroot
کنیم داخل مسیر جدیدی که کلون شده (در مثال ما در مسیر /sda2
)/boot
قرار بگیرن.اگر از fstab استفاده میکنید (لابد میپرسید مگه میشه استفاده نکرد؟!) باید اطلاعات داخل اون رو هم ویرایش کنید و مسیرهای پارتیشن های جدید رو داخلش جایگزین کنید.
نهایتا میتونید مسیرهای جدید رو چک کنید ببینید همه چیز سرجاشون هستن یا نه. و بعد سیستم رو ریبوت کنید و اگر مشکلی وجود داشت بر اساس اینکه چه پیامی دریافت میکنید مشکل رو بر طرف کنید. اگر هم مشکلی وجود نداشت که چه خوب. شما سیستمون رو با موفقیت کلون کردید. با تمام تنظیمات و پکیج هایی که طی ماه ها و حتی سالها نصبشون کردید!
حاصل سر و کله زدن های من با لینوکس