انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: Clone کردن پارتیشن در لینوکس (حل شد)  (دفعات بازدید: 1258 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
Clone کردن پارتیشن در لینوکس (حل شد)
« : 12 بهمن 1400، 10:33 ب‌ظ »
با سلام،

با توجه به عکس  پایینی و با استفاده از دستور dd :
۱-می خواهم از sda1 ، یک کلون کامل از فضای پارتیشن ( Used + Unused ) بگیرم ، دستور مربوطه چیست؟
۲- می خواهم از sda3 ، تنها از فضای استفاده شده ( Used ) کلون بگیرم ، دستور مربوطه چیست؟
۳- تنها از فضای استفاده شده ( Used ) برای کلون گیری ، در زمان برگرداندن سیستم به حالت قبل مشکلی ایجاد نمی کند و یا بهتر است و یا ضروری است که
از تمامی فضا ( Used + Unused ) ، کلون بگیریم؟
۴- اگر زمانی خواستم ، با استفاده از فایل ایمجی که در اختیار دارم ، سیستم را به حالت قبل برگردانم از چه دستوری بایستی استفاده نمایم؟
۵- این کارها(چه در مرحله ایمج گیری و چه استفاده از فایل های ایمج ، برای برگرداندن سیستم به حالت قبل) را بایستی در محیط لایو انجام بدهم؟

( راستش دراستفاده از آپشن های bs و count و conv و Sync و ... برای اینکار ماندم و در ضمن تنهابرای اینکه فضای used را برای sda3 در کلون گیری بدهم،
چیزی به ذهنم نرسید، این فضا را از کجا بدست بیاورم وچگونه به دستور بگویم تا تنها از فضای used کلون بگیرد و یا برای اینکار از این روش استفاده نمی کنند و مثلا یک آپشن خاصی بهش می دهند؟!)
« آخرین ویرایش: 19 بهمن 1400، 11:34 ب‌ظ توسط norouzi90 »

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #1 : 13 بهمن 1400، 12:53 ق‌ظ »
۱- خیلی راحت با dd اینکار رو انجام بدید.
sudo dd if=/dev/sda1 of=sda1-backup.imgبه جای sda1-backup.img می‌تونید مسیر به جایی رو که می‌خواهید فایل ذخیره بشه، قرار بدید. فکر کنم بهتر باشه موقع اینکار، اون پارتیشن سوار نشده باشه. پس اگه سواره، unmount کنید.
sudo umount /dev/sda1
۲- بهتره برای اینکار، از fsarchiver یا clonezilla استفاده کنید. اگه می‌خواهید فقط فایل‌های داخل اون فایل‌سیستم رو داشته باشید، می‌تونه یه tar ایجاد کنید.squashfs هم هست. این صفحه از ویکی آرچ یه سری چیز‌ها رو توضیح داده.
به نظرم fsarchiver برای شما، سر راست‌ترین گزینه هست. این یه راهنمایی برای fsarchiver هست.

۳- فکر نکنم مشکلی پیش بیاد. بسته به نحوه کلون کردن ممکنه uuid، label و اینجور چیز‌ها رو همره کلون نداشته باشید، ولی این نباید مشکل خاصی بوجود بیاره. احتمالا فقط لازم میشه تا فایل fstab رو تغییر بدید. شاید هم لازم باشه crypttab رو تغییر بدید، اگه از lucks برای رمزنگاری استفاده کرده باشید.

۴- بستگی به نحوه کلون کردن، محلی که کلون‌ها قرار دارند و شرایط سیستم داره. نمیشه همینجوری یه دستور داد.

۵- معمولا برای کلون کردن لازمه تا فایل‌سیستم مورد نظر رو یا به صورت فقط خواندنی سوار کنید یا اصلا نباید سوار باشه. اگه بخواهید فایل‌سیستم روت رو کلون کنید، احتمالا لازم میشه تا یکی از دو تا کار بالا رو انجام بدید، از اونجایی که unmount کردن فایل‌سیستم روت موقعی که سیستم بوت شده، ممکن نیست، برای این مورد لازم میشه تا از یه توزیع زنده استفاده کنید. برای بقیه فایل‌سیستم‌ها، اینکار الزامی نیست ولی استفاده از یه توزیع زنده، می‌تونه کار شما رو راحت‌تر کنه.

( راستش دراستفاده از آپشن های bs و count و conv و Sync و ... برای اینکار ماندم و در ضمن تنهابرای اینکه فضای used را برای sda3 در کلون گیری بدهم،
چیزی به ذهنم نرسید، این فضا را از کجا بدست بیاورم وچگونه به دستور بگویم تا تنها از فضای used کلون بگیرد و یا برای اینکار از این روش استفاده نمی کنند و مثلا یک آپشن خاصی بهش می دهند؟!)
فایل‌سیستم‌های لینوکس اینجور نیستند که همه اطلاعات رو پشت سر هم روی دیسک، ردیف کنند. مثلا اگه شما یه فایل‌سیستم ext4 داشته باشید به اندازه 80Gib که 20Gib اون پره، اینطور نیست که اون 20Gib همه پشت سر هم توی اول فایل‌سیستم ذخیره شده باشند، بلکه این 20Gib، توی سرتاسر فایل‌سیستم پخش شده. دلیل این اینه که سرعت دسترسی در اثر گذشت زمان، افت نکنه.

اگه همه اطلاعات پشت سر هم ذخیره بشن، وقتی که یه قسمتی پاک میشه، یه فضای خالی بین اطلاعات ایجاد میشه. این فضای خالی به تنهایی مشکلی نداره. اگه فایل‌سیستم موقع ذخیره اطلاعات جدید، اونها رو تکه تکه کنه و داخل این فضای‌های خای قرار بده، اینجوری میشه که بعد یه مدت  مقدار قابل توجهی از اطلاعات مرتبط، پشت سر هم نیستند.
مثلا ممکنه یه فایل 2Gib، به چندین قسمت تقسیم شده باشه. موقعی که ما می‌خواهیم اون فایل رو بخونیم، فایل‌سیستم تکه اول رو از یه جا میاره، تکه دوم رو از یه جای دیگه و به همین ترتیب تا تکه آخر. از اونجایی که این اطلاعات روی حافظه، پشت سر هم قرار نگرفتند، مدت زمانی طول می‌کشه تا حافظه از یه جا بره سراغ جای بعدی. اینجوری تاخیر‌های کمی بین خوندن تکه‌های فایل ایحاد میشه و شما نتیجه رو توی کم شدن سرعت، می‌بینید.
سرعت خوندن اطلاعات پشت سر هم، معمولا از خوندن تصادفی اطلاعات سریع‌تره. چون توی مورد اول، از یه جا کار رو شروع می‌کنیم و ادامه می‌دیم تا به آخرش برسیم. توی مورد دوم، هر بار باید از یه جا شروع کرد، یه کمی دقت جبو و بعد جا رو عوض کرد، دوباره رفت جلو و به همین ترتیب تا زمانی که فایل کامل خونده بشه.

مشکل بالا، توی فایل‌سیستم ntfs پیش میاد که بعد از مدتی، تکه تکه میشه و سرعت میاد پایین. به خاطر همین باید هر چند وقت یه بار، روی درایور مورد نظر عملیات defragmentation رو انجام داد تا اطلاعات با نظم نوشته بشن و سرعت به حالت قبل برگرده.

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

به غیر از چیز‌های بالا، حتی اگه اطلاعات پشت سر هم بوند، باز هم با اینکار کلون شما ناقص می‌بود. چون header فایل‌سیستم رو همراه کلون ذخیره می‌کردید ولی یه سری اطلاعات مربوط به خود فایل‌سیستم تا بدونه چحوری کار کنه، که توی سرتاسر فایل‌سیستم پخش شده هست رو از دست میدادید. نتیجه میشد یه کلون که ناقص بوده.
اگه کلا از فایل‌سیستم چیزی ذخیره نمی‌کردید، اونوقت یه سری اطلاعات پشت سر هم داشتید که نمی‌دونید باید باهاش چیکار کنید و چیزی هم نمی‌تونه به همین راحتی اونها رو بخونه. از اونجایی که اطلاعات مربوط به فایل‌سیستمِ حاملِ اونها، همراهشون نبوده، دستور mount یا بقیه ابزار‌ها هم نمی‌تونستند کار زیادی انجام بدند.

من خودم از zfs استفاده می‌کنم. چون توی خودش قابلیت snapshot داره. علاوه بر اینکه میشه این هر وقت نیاز شد، به این snapshot ها در حدود 20 ثانیه یا کمتر برگشت، میشه این snapshot ها رو در قالب فایل ذخیره کرد تا بعدا همه چیز رو از روی اون فایل برگردوند.
تازه خود فایل‌سیستم قابلیت فشرده‌سازی داره. یعنی بدون اینکه لازم باشه شما کار خاصی انجام بدید، هر اطلاعاتی که می‌گیره رو می‌تونه فشرده کنه تا جای کماری بگیرن. حتی داخل بدون نیاز به ابزار‌های خارجی، از رمزنگاری هم پشتیبانی می‌کته. در اصلی lvm + md + dm + یه فایل‌سیستم معمولی مثل xfs یا ext4 رو یه جا دارید.
md برای ایجاد raid هست و  dm برای رمزنگاری توی کرنل لینوکس استفاده میشه. lucks از dm استفاده می‌کنه. lvm هم که احتمالا می‌دونید چی هست.
البته به خاطر مجوزش (cddl) نمی‌تونه همراه کرنل لینوکس منتشر بشه و به خاطر همین، استفاده از اون روی سیستم‌های لینوکسی، یکم بیشتر کار می‌بره.
btrfs می‌تونه یه جایگزین برای zfs باشه ولی هنوز بعضی از قابلیت‌های zfs رو نداره و بعضی قابلیت‌هاش، پایدار نیستند.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #2 : 13 بهمن 1400، 11:46 ق‌ظ »
۱-
فایل‌سیستم‌های لینوکس اینجور نیستند که همه اطلاعات رو پشت سر هم روی دیسک، ردیف کنند.
چونکه در ext ، در نواحی مختلفی داده ها در پارتیشن نوشته می گردند  ولی در NTFS (و احتمالا در FAT ) بصورت پشت سرهم داده ها درج می گردند،
بنظرم می شود در حالت  NFTS ، با فرمان dd می شود کاری کرد که تنهااز داده های پارتیشن ، ایمیج گرفت و فضای خالی را در نظر نگیرد، البته بدین صورت:
در sda3 در سیستم من ، که پارتیشن ریشه است در صورتیکه از نوع فرمت NTFS استفاده می کردم ، الان اینقدر فضای داده های من است:

size: (140,760,791,442,993 bytes)

الان به آپشن bs ، مثلا  مقدار   bs=4096 را می دهم و بعد اگر 140,760,791,442,993  را تقسیم بر 4096 نماییم ، می شود حدودا 34365427600
همین مقدار 34365427600 ( برای اطمینان کمی بیشتر ) را به آپشن count می دهیم.
نظر شما در این مورد چیست؟

۲- دو واژه sync و rsync در علوم کامپیوتربه یک معنا و مفهوم هستند؟
و در ضمن وقتیکه به دستور dd ، آپشن sync را می دهیم ، تنها تغییرات را اعمال می کند؟

۳-
به غیر از چیز‌های بالا، حتی اگه اطلاعات پشت سر هم بوند، باز هم با اینکار کلون شما ناقص می‌بود. چون header فایل‌سیستم رو همراه کلون ذخیره می‌کردید ولی یه سری اطلاعات مربوط به خود فایل‌سیستم تا بدونه چحوری کار کنه، که توی سرتاسر فایل‌سیستم پخش شده هست رو از دست میدادید. نتیجه میشد یه کلون که ناقص بوده.
در مورد مفهوم  header فایل‌سیستم چیزی متوجه نمی شوم ولی اگر مثلا یک کار خیلی ساده بخواهیم انجام بدهیم بدین صورت که:
با سی دی لایو ، بوسیله copy and paste ابتدا از پاریشن ریشه ( sda3 ) کپی بگیرم و بعد پارتیشن ریشه را فرمت کنم و بعد دوباره کپی فایلهای ریشه را که در جای دیگر است را  دوباره بریزم در داخل همان پارتیشن ریشه که فرمت کرده ام ، آیا بنظرتان با این روش مشکلی پیش نماید و سیستم بوت می شود و درست کار می کند؟

۴-
من خودم از zfs استفاده می‌کنم. چون توی خودش قابلیت snapshot داره.
فکر می کنم در گنو/لینوکس بصورت پیش فرض از ext استفاده می کنند، بنظرتان اگر zfs دارای امکانات بهتری است ، چرا از آن استفاده نمی شود و بجای ext آنرا پیشنهاد نمی دهند؟

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19724
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #3 : 14 بهمن 1400، 12:48 ق‌ظ »
۱. در ntfs داده‌ها پشت هم نیستن. برای همین توش به defragment نیاز دارید. در ext خیلی بیش‌تر می‌تونید چنین انتظاری داشته باشید.

۲. نه. ارتباطی به هم ندارن. sync به معنای هم‌گام سازیه و rsyn c نام یک نرم‌افزاره. گزینهٔ sync در dd هم ارتباطی به این داستان نداره و در مورد حافظهٔ میانگیر رایانه است.

۳. به عوامل مختلفی بستگی داره. ولی در هر صورت به همین سادگی قابل انجام نیست.

۴. جون با لینوکس سازگار نیست. اگه دنبال سامانه پرونده‌ای با ویژگی‌های بهتر از ext4 هستید، ‌btrfs انتخاب خوبیه.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #4 : 14 بهمن 1400، 08:02 ق‌ظ »
۱-
در پارتیشن ریشه سیستم من در sda3 ،
۲۱ پوشه و ۴ فایل ، در اولین نگاه در پنجره اول فایل منیجر مربوط به این پارتیشن وجود دارد.

نام پوشه ها: var ، usr ، tmp ، sys ، srv ، sbin ، run ، root ، proc ، opt ، mnt ، media ، libx32 ، lib64 ، lib32 ، lib ، home ، etc ، dev ، boot ، bin
نام فایل ها : vmlinuz.old ، vmlinuz ، initrd.img.old ، initrd.img


چرا این پوشه ها خالی هستند؟ : srv ، opt ، libx32 ، lib32 ،


۲-
وقتیکه با نرم افزار timeshift ، از سیستم snapshot می گیرم ، علاوه بر پوشه های بالایی، این پوشه ها هم خالی هستند، چرا timeshift از فایل های درون این پوشه ها هم نسخه پشتیبان تهیه نمی کند، عبارتند از :  tmp ، sys ، run ، proc ، mnt ، media ، dev
( بنظر خودم پوشه media برای mount سی دی رام بکار رفته و پوشه mnt برای mount پارتیشن ها و tmp هم برای قرارگیری فایل های موقت ،به این علت timeshift آنها را خالی نگه داشته، اگر این یکی ها را درست گفته باشم، پوشه های بعدی را نمی دانم.)

۳-
وقتیکه در محیط لایو از پارتیشن ریشه سیستم من در sda3 می خواهم ، copy and paste ، نمایم خطای عکس پایینی را می دهد.
هر چند که اکثریت فایل ها کپی می شوند ، ولی می خواستم علت این خطا را بدانم و همچنین می خواستم بدانم چه فایل هایی کپی نمی شوند؟
آیا این فایل هایی که از این طریق کپی نمی شوند در فرایند پشتیبان گیری و زمانیکه سیستم را بخواهیم restore نمایم مهمند و بایستی باشند؟
در محیط لایو و در خط فرمان با چه دستوری سیستم را می توانم ملزم به کپی گیری از آنها را نیز نمایم؟ 

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #5 : 14 بهمن 1400، 08:52 ب‌ظ »
۱-
 چونکه در ext ، در نواحی مختلفی داده ها در پارتیشن نوشته می گردند  ولی در NTFS (و احتمالا در FAT ) بصورت پشت سرهم داده ها درج می گردند،
بنظرم می شود در حالت  NFTS ، با فرمان dd می شود کاری کرد که تنهااز داده های پارتیشن ، ایمیج گرفت و فضای خالی را در نظر نگیرد، البته بدین صورت:
در sda3 در سیستم من ، که پارتیشن ریشه است در صورتیکه از نوع فرمت NTFS استفاده می کردم ، الان اینقدر فضای داده های من است:

size: (140,760,791,442,993 bytes)

الان به آپشن bs ، مثلا  مقدار   bs=4096 را می دهم و بعد اگر 140,760,791,442,993  را تقسیم بر 4096 نماییم ، می شود حدودا 34365427600
همین مقدار 34365427600 ( برای اطمینان کمی بیشتر ) را به آپشن count می دهیم.
نظر شما در این مورد چیست؟
از اینکار‌ها نکنید. معمولا یه فایل‌سیستم پیچیده‌تر از این هست که بگید با dd، یه مقدار رو رد می‌کنیم و بعد تا یه جای مشخص رو می‌خونیم و ذخیره می‌کنیم. از ابزار‌های مناسب اینکار مثل clonezila استفاده کنید.

نقل‌قول
۲- دو واژه sync و rsync در علوم کامپیوتربه یک معنا و مفهوم هستند؟
و در ضمن وقتیکه به دستور dd ، آپشن sync را می دهیم ، تنها تغییرات را اعمال می کند؟
فرق دارند. sync به معنای همگام‌سازی هست. rsync یه ابزاره که با زبان c نوشته شده. تقریبا می‌تونید اون رو نسخه ارتقا یافته دستور cp بدونید.
اون sync که توی dd هست، متفاوته. می‌تونید صفحه man مربوط به dd رو برای اطلاعات بیشتر ببینید.
man dd
۳-
نقل‌قول
در مورد مفهوم  header فایل‌سیستم چیزی متوجه نمی شوم ولی اگر مثلا یک کار خیلی ساده بخواهیم انجام بدهیم بدین صورت که:
با سی دی لایو ، بوسیله copy and paste ابتدا از پاریشن ریشه ( sda3 ) کپی بگیرم و بعد پارتیشن ریشه را فرمت کنم و بعد دوباره کپی فایلهای ریشه را که در جای دیگر است را  دوباره بریزم در داخل همان پارتیشن ریشه که فرمت کرده ام ، آیا بنظرتان با این روش مشکلی پیش نماید و سیستم بوت می شود و درست کار می کند؟
فایل‌سیستم باید یه جا یه سری چیز‌ها بنویسه تا بقیه برنامه‌ها (معمولا خود کرنل) متوجه بشن دارند با چی کار می‌کنند. به خاطر همین، ابتدای جایی که با یه فایل‌سیستم فرمت میشه، شامل یه سری اطلاعات مربوط به فایل‌سیستم هست تا بقیه برنامه‌ها بتونند متوجه چیزی که استفاده میشه، بشن. اگه اون اطلاعات آسیب ببینه، ممکنه برنامه‌ها نتونند فایل‌سیستم رو تشخیص بدند. علاوه بر اون چیز‌هایی که ابتدا قرار داره، چیز‌های دیگه‌ای هم (مثل super block ها) توی جاهای دیگه فایل‌سیستم وجود دارند تا فایل‌سیستم درست کار بده.

در مورد مثالی که در ادامه زدید، احتمالا لازمه فایل fstab رو ویرایش کنید چون با هر بار فرمت، uuid عوض میشه. اگه توی fstab از uuid استفاده شده باشه (که معمولا اینجوریه) اونوقت سیستم بوت نمیشه یا اگه بشه، توی initramfs گیر می‌کنید. البته می‌تونید uuid ها رو به چیز قبلی تغییر بدید تا لازم نباشه fstab رو ویرایش کنید.
اگه از lvm یا md یا dm استفاده شده باشه، احتمالا لازم میشه initramfs رو هم آپدیت کنید.
گراب رو هم به احتمال زیاد، لازمه روی دیسک نصب، و بعد تنظیماتش رو آپدیت کنید.

تغییر فایل fstab، اگه از lucks استفاده کرده باشید‌ crypttab، نصب و آپدیت کردن تنظیماتِ گراب و آپدیت کردن initramfs معمولا کار‌هایی هست که لازمه انجام بدید. ممکنه با توجه به شرایط، بعضی از کار‌ها لازم نباشه.

۴-
نقل‌قول
فکر می کنم در گنو/لینوکس بصورت پیش فرض از ext استفاده می کنند، بنظرتان اگر zfs دارای امکانات بهتری است ، چرا از آن استفاده نمی شود و بجای ext آنرا پیشنهاد نمی دهند؟
دلیل اصلیش، مجوز اون هست (cddl) که با مجوز کرنل (بیشتر gpl نسخه ۲) سازگار نیست. افراد مختلفی هم از zfs خوششون نمیاد. مثلا لینوس توروالدز گفته از zfs استفاده نکنید.
گراب، به طور کامل از همه قابلیت‌های zfs پشتیبانی نمی‌کنه و اگه بعضی قابلیت‌ها رو فعال کرد، دیگه گراب نمی‌تونه اونها رو بخونه. (توی zfs میشه تنظیم کرد که چه قابلیت‌هایی فعال بشن و کدوم‌ها نه)
به دلیل پشتیبانی نا کامل گراب از zfs، من از zfsbootmenu استفاده می‌کنم. این لینک پروژه توی گیتهاب هست.
فعلا این پروژه، فقط برای void linux بسته بندی شدن.

از بین توزیع‌های مشهور، فعلا فقط نصاب اوبونتو رو میشناسم که از zfs پشتیبانی می‌کنه ولی هیچ قابلیت شخصی‌سازی موقع استفاده از zfs، به کاربر نمیده.
تنها توزیعی که میشناسم که قشنگ از zfs موقع نصب پشتیبانی می‌کنه و zfsbootmenu توی مخازنش وجود داره، trident، یه توزیع مبتنی بر void linux هست.

zfs توی مخازن دبیان هست (توی قسمت contrib). توی دبیان، با نصب بسته zfs-dkms، کد مربوط به ماژول‌ها اون دانلود، کامپایل و نصب میشن‌ (مثل درایور‌های انحصاری انویدیا). به دلیل مشکل مجوزی که داره، به صورت کد منبع توی مخازن دبیان قرار گرفته. کار‌های مربوط به کامپایل اون ماژول‌ها، توسط dkms انجام میشه.
zfs توی اوبونتو، همراه خود کرنل قرار داره و لازم نیست برای داشتن ماژول‌ها اون، بسته خاصی نصب کرد. برای داشتن ابزار‌های محیط کاربر (مهم‌تر‌هاش دستورات zfs و zpool هستند) کافیه بسته zfsutils-linux رو نصب کرد.

zfs توی مخازن رسمی فدورا و rhel نیست، اما خود پروژه zfs on linux، یه مخزن برای فدورا و توزیع‌های مبتنی بر اون داره. توی فدورا، دوتا گزینه برای ماژول‌های zfs دارید، یا نسخه dkms رو بگیرید که کد دریافت و کامپایل میشه یا نسخه از پیش کامپایل شده. نسخه از پیش کامپایل شده، فقط برای کرنل‌های توی مخازن فدورا، وجود دارند.

در مورد آرچ، zfs توی aur هست. یه مخزن غیر رسمی هم zfs رو داره. توی آرچ، وضعیت شبیه فدورا هست. یعنی هم نسخه از پیش کامپایل شده دردسترسه، هم نسخه‌هایی که توسط dkms مدیریت میشن.

btrfs یه فایل‌سیستمی هست که تعداد قابل توجهی از قابلیت‌های zfs رو داره. مجوزش مشکلی نداره، به خاطر همین همراه کرنل قرار داره. از zfs، هنوز کمی کند‌تره.
میشه فایل‌سیستم‌های ext4 و btrfs رو به هم تبدیل کرد ولی اینکار بدون ریسک نیست و خیلی پیشنهاد میشه قبل از اینکار، پشتیبان بگیرید.

از بین فایل‌سیستم‌های سنتی لینوکس (خانواده ext و احتمالا xfs)، zfs و btrfs، فایل‌سیستم‌های سنتی، سرعت بیشتری نسبت به btrfs دارند. zfs با توجه به شرایط می‌تونه سریع‌تر یا کند‌تر از فایل‌سیستم‌های سنتی لینوکس باشند. از بین فایل‌سیستم‌های سنتی، xfs سریع‌تر از ext4 هست.

bcachefs هم حدود سال 2014 توسه‌اش شروع شد، نمی‌دونم الان وضعیتش چیه؛ ولی توسعه دهنده‌هاش گفتند، می‌تونه جایگزین zfs باشه.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #6 : 15 بهمن 1400، 11:27 ب‌ظ »
من در محیط لایو توسط  gparted  ، به فضای Used  پارتیشن ریشه‌ام یعنی sda3 نگاه کردم،که حجمش 6.17  گیگابایت بود.(عکس  1)
بعد توسط fsarchiver  از sda3  ، یک فایل ایمیج گرفتم.( عکس  2 )
بعد پارتیشن sda3  را با  gparted ، فرمت کردم.
بعد توسط timeshift ،  پارتیشن sda3 را به حالت قبلش برگرداندم و بدون مشکلی سیستم بوت شد و دوباره برگشتم به محیط لایو و دوباره توسط  gparted  ، به فضای Used  پارتیشن ریشه‌ام یعنی sda3 نگاه کردم،که حجمش 5.85  گیگابایت بود. ( عکس timeshift )
بعد دوباره پارتیشن sda3  را با  gparted ، فرمت کردم.
بعد توسط fsarchiver  خواستم sda3  توسط فایل ایمیجی که گرفته بودم  را به حالت قبل برگردانم.( عکس  3  )
 بعد از اتمام عملیات موردنظر در همان محیط لایو توسط  gparted  ، به فضای Used  پارتیشن ریشه‌ام یعنی sda3 نگاه کردم،که حجمش 6.17  گیگابایت بود.(عکس  fsarchiver)
ولی مشکلی که الان وجود دارد این است که با بازگردانی فایل ایمج توسط نرم‌افزار  fsarchiver ،سیستم بوت نمی‌شود و در همان گراب می ماند.

اگر حوصله داشتید ، بفرمایید که چگونه در این حالت کاری کنم که سیستمم بوت شود ، تا نحوه کار با  fsarchiver را تا انتها ( تا بوت شدن سیستم) یاد گرفته باشم.
اگر هم وقت نداشتید ، سیستمم را با همان timeshift به حالت قبل برگردانم.



آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #7 : 18 بهمن 1400، 02:08 ق‌ظ »
۱-
در پارتیشن ریشه سیستم من در sda3 ،
۲۱ پوشه و ۴ فایل ، در اولین نگاه در پنجره اول فایل منیجر مربوط به این پارتیشن وجود دارد.

نام پوشه ها: var ، usr ، tmp ، sys ، srv ، sbin ، run ، root ، proc ، opt ، mnt ، media ، libx32 ، lib64 ، lib32 ، lib ، home ، etc ، dev ، boot ، bin
نام فایل ها : vmlinuz.old ، vmlinuz ، initrd.img.old ، initrd.img


چرا این پوشه ها خالی هستند؟ : srv ، opt ، libx32 ، lib32 ،

فایل‌های vmlinuz و vmlinuz.old، به ترتیب لینک به فایل جدید‌ترین کرنل نصب شده و کرنل قبلی، توی /boot/ هستند. اگه فقط یه کرنل داشته باشید، هر دو فایل به همون کرنل نصب شده، لینک میشن.
initrd.img و initrd.img.old هم شبیه بالا هستند. یعنی initrd.img به فایل initramfs مربوط به جدیدترین کرنل، و initrd.img.old به فایل initramfs مربوط به کرنل قبلی لینک شده. اگه فقط یه کرنل داشته باشید، اصولا باید یه initramfs موجود باشه. در نتیجه initrd.img و initrd.img old هر دو به initramfs مربوط به کرنل نصب شده، لینک میشن.

دایرکتوری srv معمولا توسط برنامه‌هایی استفاده میشن که قراره به کامپیوتر‌های دیگه، خدمت بدند. مثلا ممکنه وب‌سرور (برای مثال nginx) نصب کرده باشید. در این حالت می‌تونید فایل‌های مربوط به وبسایت‌ها رو توی srv ذخیره کنید. ممکنه یه سرویسِ پایگاه داده مثل mariadb روی کامپیوتر شما باشه، در این حالت می‌تونید داده‌ها رو توی srv ذخیره کنید.
دایرکتوری opt برای این هست تا نرم‌افزار‌های خارج از مخازن، اونجا نصب بشن. برای مثال matlab توی مخازن نیست و وقتی نصبش می‌کنید، فایل‌های خودش رو داخل /opt/ میذاره.

دایرکتوری‌های lib32 و libx32 به این دلیل خالی هستند چون کتابخانه یا نرم‌افزار 32 بیتی ندارید. اگه کتابخانه‌های 32 بیتی رو نصب کنید، احتمالا فایل‌های اونها توی /lib32/ قرار میگیره.
اگه معماری پردازنده شما نسخه 64 بیتی x86 باشه، می‌تونه برنامه‌هایی که برای نسخه 32 بیتی و 16 بیتی معماری x86 کامپایل شدند رو هم اجرا کنه. نسخه 32 بیتی معماری x86، توی اکثر سیستم‌عامل‌های آزاد، با اسم i386 یا i686 شناخته میشه. نسخه 64 بیتی همین معماری تکی سیستم‌عامل‌های آزاد، معمولا amd64 نام داره.

با اضافه کردن معماری i386 به لیستِ معماری‌های dpkg، می‌تونید با apt، نسخه 32 بیتی کتابخانه‌ها و برنامه‌ها رو از مخارن دریافت کنید.
می‌تونید با این دستور، معماری i386 رو به اون لیست اضافه کنید.
sudo dpkg --add-architecture i386بعد لیست مخازن رو بروز کنید و می‌تونید نسخه 32 بیتی بسته‌ها رو از مخازن نصب کنید.
sudo apt update
می‌تونید معماری‌ها رو از لیست dpkg حذف کنید. مثلا برای i386، اینجوری:
sudo dpkg --remove-architecture i386
اگه سعی کنید یه معماری که وجود نداره رو به لیست dpkg اضافه کنید، خطایی نمی‌گیرید و بدون مشکل اضافه میشه. اما در ادامه، apt اخطار میده که نمی‌تونه چیزی مرتبط با اون معماری، توی مخازن پیدا کنه.
اگه سعی کنید یه معماری که تو لیست dpkg نیست رو پاک کنید، dpkg  خطا میده که نمی‌تونه اون رو پاک کنه.

به روش بالا می‌تونید معماری‌های دیگه‌ای که توسط دبیان پشتیبانی میشه (مثل arm64 یا s390x) ولی برنامه‌هایی که مربوط به اون معماری هستند، روی سیستم شما اجرا نمیشن چون پردازنده شما نمی‌تونه اونها رو اجرا کنه. ممکنه حتی نصب اون بسته‌ها با موفقیت انجام نشه.

اگه یه بسته برای چنتا معماری وجود داشته باشه، (توی دبیان اکثر بسته‌ها اینجوری هستند.) معمولا نسخه‌ای نصب میشه که با معماری پردازنده هماهنگ هست. می‌تونید با نوشتن یه دو نقطه و بعد معماری مورد نظر بعد از اسم بسته، از apt بخواهید که نسخه مربوط به یه معماری خاص رو نصب کنه. مثلا دستور زیر، نسخه‌ای از tor رو نصب می‌کنه که مربوط به معماری i386 هست.
sudo apt install tor:i386دقت کنید که معمولا، نمی‌تونید چندین نسخه برای معماری‌های مختلف از یه بسته رو همزمان نصب کنید. مثلا نسخه‌ای از بسته tor که مربوط به معماری i386 هست، با نسخه‌ای از tor که مربوط به معماری amd64 هست، تداخل داره و با نصب یکی، اون یکی پاک میشه.
البته بعضی کتابخانه‌ها، چندین نسخه برای چندین معماری دارند و تداخلی با هم ایجاد نمی‌کنند.

الان، معمولا لازم نیست پشتیبانی از معماری i386 رو توی dpkg، روی سیستم‌هایی که پردازنده با معماری amd64 دارند، فعال کنید.
م.ه اینکه بخواهید steam یا بازی‌های انحصاری رو نصب کنید. اکثر بازی‌های انحصاری، به کتابخانه‌های 32 بیتی نیاز دارند. steam هم کلا 32 بیتی هست. حداقل توی گنو/لینوکس.

نقل‌قول

۲-
وقتیکه با نرم افزار timeshift ، از سیستم snapshot می گیرم ، علاوه بر پوشه های بالایی، این پوشه ها هم خالی هستند، چرا timeshift از فایل های درون این پوشه ها هم نسخه پشتیبان تهیه نمی کند، عبارتند از :  tmp ، sys ، run ، proc ، mnt ، media ، dev
( بنظر خودم پوشه media برای mount سی دی رام بکار رفته و پوشه mnt برای mount پارتیشن ها و tmp هم برای قرارگیری فایل های موقت ،به این علت timeshift آنها را خالی نگه داشته، اگر این یکی ها را درست گفته باشم، پوشه های بعدی را نمی دانم.)
media و mnt معمولا برای سوار کردن فایل‌سیستم‌ها به طور موثتی، وقتی که می‌خواهید یه کاری با اونها انجام بدید، استفاده میشن. معمولا سوار کردن‌هایی که از طریق مدیر فایل یا محیط گرافیکی انجام میدید، روی یه دایرکتوری، داخل یه دایرکتوری دیکه به اسم کاربر شما، داخل /media/ انجام میشه.

مثلا اگه یه فایل‌سیستم با یه label برابر Movies وجود داشته باشه و شما با کاربر myuser وارد شده باشید و از طریق محیط گرافیکی اون فایل‌سیستم رو سوار کنید، محل سوار شدنش می‌تونه این باشه:
/media/myuser/Moviesممکنه نام دایرکتوری آخر، برابر uuid  فایل‌سیستم مورد نظر باشه. ممکنه چیز‌های مختلفی باشه. بستگی داره کدوم از اونها همراه فایل‌سیستم وجود داشته باشه.

/mnt/ معمولا برای سوار کردن دستی فایل‌سیستم‌ها استفاده میشه.

/tmp/ هم مشخصه چرا توی snapshot ها نیست. فایل‌های موقتی اونجا ذخیره میشن و دلیل خاصی نیست تا اونها رو همراه snapshot ها داشته باشیم.

روی /run/ /dev/ /sys/ و /proc/، فایل‌سیستم‌های مجازی سوار میشه تا بشه از فضای کاربر (user space) تا حدودی به کرنل دسترسی داشت. محتویات اونها، موقع بالا اومدن کرنل تعیین میشه و می‌تونه در اثر قطع و وصل کردن سخت‌افزار‌ها یا تغییرات تنظیمات یا برنامه‌های مختلف، تغییر کنه. اطلاعات توی اون دایرکتوری‌ها، موقتی هست و با راه‌اندازی مجدد، از بین میره. اون اطلاعات همه روی رم ذخیره شدند. پس لازم نیست اونها رو همراه snapshot ها داشته باشیم.
به غیر از این، فکر کنم چون هر کدون از اون دایرکتوری‌ها یه محل سوار شدن (mountpoint) حساب میشن، timeshift در هر صورت اطلاعات اونها رو همراه snapshot ها ذخیره نمی‌کرد.

نقل‌قول
-
وقتیکه در محیط لایو از پارتیشن ریشه سیستم من در sda3 می خواهم ، copy and paste ، نمایم خطای عکس پایینی را می دهد.
هر چند که اکثریت فایل ها کپی می شوند ، ولی می خواستم علت این خطا را بدانم و همچنین می خواستم بدانم چه فایل هایی کپی نمی شوند؟
آیا این فایل هایی که از این طریق کپی نمی شوند در فرایند پشتیبان گیری و زمانیکه سیستم را بخواهیم restore نمایم مهمند و بایستی باشند؟
در محیط لایو و در خط فرمان با چه دستوری سیستم را می توانم ملزم به کپی گیری از آنها را نیز نمایم؟
به نظر میاد نتونسته چندین فایل که از نوع خاص هستند (احتمالا block special) رو کپی کنه. اگه روی show more detailes می‌زدید، احتمالا اطلاعات بیشتری میداد. مثل اینکه چرا نتونسته کپی کنه یا چه فایل‌هایی بودن که این اتفاق برای اونها افتاده.
میدونید که زکات علم نشر آن است

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #8 : 19 بهمن 1400، 03:09 ب‌ظ »
 چند روزی است  که افتادم طبق معمول به جان سیستم و هی فرمتش می کنم ،البته در این  بین به نتایجی هم رسیده ام و مطالبی را آموخته ام ، حیفم آمد آنها را در اختیار دوستان قرار ندهم، شاید یکیش بدردتان بخورد.( ماشاا... اونقدر دانشمندید که موشک هوا می کنید ، این مسایل پیش پا افتاده به چه دردتان خواهد خورد ولی بهرحال.)
 البته چون به این موضوع علاقمندم ، از پایین ترین سطح شروع می کنم و ان شاء ا... همین طوری می روم جلو، مطالبی که در اینجا آورده ام به هیچ عنوان کپی برداری صرف از اینترنت نبوده  و بر روی سیستم خودم به طرق های گوناگون بارها آزموده ام .
 دوستان اگر از نظرات اصلاحی و راهنماییهایشان مرا برخوردار نمایند، مثل همیشه ممنون و متشکر خواهم بود.
 


 الف) backup و restore با cp :

 همه این کارها را در محیط لایو انجام دهید.

 ۱- ابتدا توسط این فرمان از پارتیشن موردنظرتان بک آپ بگیرید:
cp  -afrp   path/to/root  /path/to/destination
 توچه کنید که با این فرمان در مقصدتان یک پوشه ای با نام UUID پارتیشن مبدا ایجاد خواهد شد که در داخل آن پوشه ها و فایل های ریشه اتان خواهد بود.
 اگر هم دوست نداشته باشید که پوشه ای با نام UUID پارتیشن مبدا برایتان ایجاد شود از  این دستور استفاده نمایید، تا پوشه ها و فایل ها ی مبدا،  بدون ایجاد این پوشه در مقصدتان کپی شود( حتما در اینصورت ،علامت */ در انتهای مسیر مبدا را بگذارید.):
(عکس ۱)

cp  -afrp   path/to/root/*  /path/to/destination
اگر هم دوست داشته باشید از انچه در حال انجام است را نمایش دهد از آپشن v استفاده نمایید، که در اینجا afrpv- می شود .

 ۲- زمانیکه هم خواستید با این دستور سیستم را به حالت قبل برگردانید، جای دو تا مسیر را با هم عوض کنید و چون نمی خواهیم خود پوشه بک آپ انتقال یابد و تنها       
   می خواهیم محتویات پوشه بک آپ انتقال یابد،علامت */ در انتهای مسیر مبدا را بگذارید.( عکس ۲)

cp  -afrp   /path/to/backup/*   path/to/root
 تذکر: برای استفاده از این روش ، لازم است که هر دو مسیر در حالت mount باشند.
 
تذکر: از این روش تنها در محیط لایو برای پشتیبان گیری و restore کردن سیستم اصلی تان استفاده نمایید.

 تذکر: چون حجم فایل ها زیاد است مدت زمانی طول می کشد که فایل ها از حافظه میانگیر یا بافر (Buffer) به روی هاردتان ذخیره گردند و بایستی حتما قبل از بستن پنجره ها
 و یا خروج از سیستم نسبت به این امر مطمئن شوید.
 بطور کلی برای اینکه مطمئن شویم چه در زمان backup گیری و چه در زمان restore ، که تعداد فایل های مبدا با مقصد یکی باشند از دستور  tree استفاده می نماییم.
  اگر بر روی سیستممان نصب نیست ابتدا با دستور  sudo apt install tree  آنرا نصب می نماییم و بعد به عنوان آرگومان یکبار به دستور tree ، مبدا را می دهیم و یکبار دیگر مقصد را . در انتهای خروجی دستور  tree ، تعداد directories و files  مربوط به مسیر داده شده را نشان می دهد. سپس فایل های مبدا و مقصد را باهم از لحاظ تعداد دایرکتوری و فایل با هم مقایسه می نماییم.( عکسهای tree1 و tree2 )
 
 تذکر: در بالا برای فرمان cp بایستی حتما آپشن های afrp- را بکار ببرید، اگر آنها را بکار نبرید بعد از بالا آمدن سیستم اصلی در بعضی زمینه ها از قبیل مجوزها و...
  دچار مشکل خواهید بود . ( عکس sudo ) 


 تذکر مهم: اگر پوشه ها و فایل های پارتیشن اصلی تان را در محیط لایو همین طوری با delete + shift حذف کردید ، تنها فقط همان restore کردن در محیط لایو کفایت می کند و نیازی به
 مراحل پایینی ندارید.

 تذکر: ولی اگر زمانی  پارتیشن ریشه را فرمت کردید و سپس خواستید سیستمتان را restore نمایید،لازم است که علاوه بر مراحل بالایی ، مراحل زیر را هم انجام بدهید:

 -  چون uuid پارتیشن ریشه با هر بار فرمت کردن عوض می شود ، بایستی در فایل  fstab بروید و uuid  قبلی پارتیشن / را به uuid جدیدش تغییر بدهید.
 یک عکس هم در این مورد گذاشته ام و یکی قبل از فرمت پارتیشن و دیگری بعد از فرمت پارتیشن می باشد و بوضوح نشان می دهد که uuid پارتیشن تغییر کرده است.( عکس 3)   
 کار سختی هم نیست برای پیدا کردن uuid مثلا اگر پارتیشن / در sda3 باشد از این دستور استفاده کنید، فرقی ندارد چه در محیط سیستم اصلی تان و چه در محیط لایو ،باشید، جواب یکی است :

blkid  /dev/sda3
 بعد از پیدا کردن uuid بروید و با ویرایشگرتان در فایل fstab و  uuid را تغییر بدهید. ( عکس 4 و 5  و 6)

 - بایستی grub را آپدیت نمایید. در همین لینوکس مینت که بصورت لایو بالا آمده است ، بصورت پیش فرض نرم افزار گرافیکی بنام Boot Repair وجود دارد که
 از آن می توانید ، استفاده نمایید، چونکه اگر اینکار را نکنید، سیستمتان بوت نخواهد شد.( عکس های 7 , 8 , 9 , 10 , 11 )
 به راحتی بر روی گزینه Recommended repair کلیک کنید ، تا خودش همه کارها را انجام بدهد.
 اگر هم بخواهید بدانید که این Boot Repair چه کاری انجام داده ، ایجاد پوشه ای بنام Boot در پوشه EFI می باشد. پوشه ای بنام Boot  توسط نرم افزار  Boot Repair  با سه فایل درونش  ایجاد شده است.( عکس  12 )
« آخرین ویرایش: 19 بهمن 1400، 03:27 ب‌ظ توسط norouzi90 »

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #9 : 19 بهمن 1400، 03:13 ب‌ظ »
ادامه عکسهای مربوط به ( backup و restore با cp ) :

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #10 : 19 بهمن 1400، 03:22 ب‌ظ »
ادامه عکسهای مربوط به ( backup و restore با cp ) :

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #11 : 19 بهمن 1400، 08:47 ب‌ظ »
 روشی دیگر برای تعمیر و آپدیت گراب در حالت EFI :
 
همچنانکه در بالا توضیح دادم ، اگر از سیستمتان با روشهای cp ,  rsync  و یا fsarchiver و ... بک آپ بگیرید و سپس پارتیشن ریشه سیستمتان را فرمت نمایید و بعد از آن اقدام به restore فایل های بک آپ به پارتیشن ریشه نمایید، سیستمتان بوت نمی شود . چون uuid پارتیشن ها با فرمت کردن تغییر می نمایند.
 اگر دبیان نصب کرده اید در داخل  پوشه EFI که مربوط به boot کردن سیستم شماست ، پوشه ای بنام debian وجود دارد.که فایل های مربوط به efi و boot و grub در داخل همین
 پوشه debian هستند.در بالا من برای حل این موضوع از نرم افزار Boot Repair که بصورت پیش فرض در لینوکس مینت نصب است ، استفاده کردم با این کار پوشه ای بنام boot در کنار  همین پوشه debian ایجاد می گردد. ولی من دوباره می خواهم از روش دیگری استفاده نمایم  و اصل موضوع را برای شما نشان بدهم که مشکل در کجاست و سپس  به سادگی
 این مورد را با روش دیگری حل بکنم.در این حالت برخلاف استفاده از نرم افزار Boot Repair ، هیچ فایل یا پوشه ای به سیستمتان اضافه نمی شود.   مراحل کار را با عکس برای شما نشان داده ام .

 توصیح  آنکه پارتیشن ریشه من در sda3 و همچنین پارتیشن EFI سیستم من در sda1 می باشد.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #12 : 19 بهمن 1400، 11:23 ب‌ظ »
ب) backup و restore با rsync :

در ویکی آرچ در این مورد به حد کافی توضیح داده شده است:

https://wiki.archlinux.org/title/rsync

  وقتیکه موارد مربوطه به این صفحه خوانده می شود ، ما بین این صفحه و عملکرد timeshift ، شباهت های فراوانی مشاهده می شود.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • Debian + Mate
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #13 : 19 بهمن 1400، 11:26 ب‌ظ »
با تشکر فراوان از آقایان  Dragon- و دانیال بهزادی .

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : Clone کردن پارتیشن در لینوکس
« پاسخ #14 : 20 بهمن 1400، 01:35 ق‌ظ »
بعد توسط timeshift ،  پارتیشن sda3 را به حالت قبلش برگرداندم و بدون مشکلی سیستم بوت شد و دوباره برگشتم به محیط لایو و دوباره توسط  gparted  ، به فضای Used  پارتیشن ریشه‌ام یعنی sda3 نگاه کردم،که حجمش 5.85  گیگابایت بود. ( عکس timeshift )
بعد دوباره پارتیشن sda3  را با  gparted ، فرمت کردم.
وقتی پارتیشن رو فرمت کردید، uuid اون به همراه اطلاعات فایل‌سیستم عوض/پاک شدند. بعد که با timeshift به حالت قبل برگشتید، احتمالا timeshift دوباره uuid رو به حالت قبل برگردونده و سیستم بدون مشکل بوت شده.

دلیل تفاوت حجم‌ها احتمالا این بوده که timeshift، فایل‌های موقتی رو همراه پشتیبان‌ها ذخیره نکرده.
نقل‌قول
بعد توسط fsarchiver  خواستم sda3  توسط فایل ایمیجی که گرفته بودم  را به حالت قبل برگردانم.( عکس  3  )
 بعد از اتمام عملیات موردنظر در همان محیط لایو توسط  gparted  ، به فضای Used  پارتیشن ریشه‌ام یعنی sda3 نگاه کردم،که حجمش 6.17  گیگابایت بود.(عکس  fsarchiver)
ولی مشکلی که الان وجود دارد این است که با بازگردانی فایل ایمج توسط نرم‌افزار  fsarchiver ،سیستم بوت نمی‌شود و در همان گراب می ماند.
فکر کنم fsarchiver به طور پیش‌فرض به uuid کار نداره و به خاطر همین، uuid توی حالت‌های مختلف، متفاوت بوده‌.
در مورد حجم هم مشخصه چرا مثل قبل بوده. fsarchiver همه چیز‌های داخل اون پارتیشن رو ذخیره کرده و کاری هم به اینکه بعضی فایل‌ها موقتی بودند، نداشته.

وقتی توی گراب گیر می‌کردید چه اتفاقی می‌افتاد؟ چیزی شبیه grub rescue می‌دیدید؟ احتمالا یه خط فرمان باز میشده و از شما می‌خولسته تا چیز وارد کنید، درسته؟

توی سیستم‌های uefi، فایل اجرایی گراب توی esp ذخیره میشه (EFI system partition)، معمولا همراه فایل اجرایی گراب، یه فایل متنی کوچک هم هست. اون فایل سعی می‌کنه تنظیمات اصلی گراب رو بارگذاری کنه.
تنظیمات اصلی گراب، بسته به توزیع توی یکی از مسیر‌‌های زیر قرار داره.
/boot/grub/grub.cfg
/boot/grub2/grub2.cfg
معمولا توی دبیان و توزیع‌های مبتنی بر اون، اولی استفاده میشه و توی فدورا و توزیع‌های مبتنی بر اون، از دومی.

اون فایل تنظیمات کوچک که همراه گراب توی esp قرار داره، اول سعی می‌کنه روت رو برابر فایل‌سیستمی قرار بده که تنظیمات گراب داخلش قرار دارند. و بعد هم تنظیمات رو بارگذاری کنه. معمولا از uuid برای پیدا کردن اون فایل‌سیستم استفاده میشه.
توی حالت شما، /boot/grub/ جزی از روت دبیان بوده. در نتیجه توی اون فایل کوچک، uuid که استفاده شده بوده، uuid مربوط به فایل‌سیستم روت شما بوده.
وقتی uuid تغییر کرده، گراب هم نمی‌تونسته تنظیمات اصلیش رو بارگذاری کنه و در نتیجه یه خط فرمان به شما میداده تا کار‌ها رو درست کنید.

اون فایل کوچک و فایل اجرایی گراب که داخل esp وجود دارند، معمولا توسط grub-install اونجا گذاشته شدند.

نقل‌قول
اگر حوصله داشتید ، بفرمایید که چگونه در این حالت کاری کنم که سیستمم بوت شود ، تا نحوه کار با  fsarchiver را تا انتها ( تا بوت شدن سیستم) یاد گرفته باشم.
یا باید یه جوری uuid رو همراه پشتیبان‌های fsarchiver ذخیره کنید تا بعدا موقع برگردوندن پارتیشن، uuid مثل قبل بشه یا اینکه تنظیمات گراب رو درست کنید.
میدونید که زکات علم نشر آن است