النقاط الرئيسية
- لا يقوم VirtualBox بتقليص حجم أقراص ضيف Linux تلقائيًا، ولكن يمكنك استعادة مساحة القرص يدويًا عن طريق تصفير البيانات وضغط وحدة التخزين.
- يجب عليك تمكين التخصيص الديناميكي في VirtualBox والنسخ الاحتياطي لبياناتك قبل المتابعة بعملية ضغط القرص.
- استخدم الأمر “dd” لإلغاء تحديد المساحة الفارغة في ضيف Linux ثم استخدم VBoxManage لضغط صورة القرص الافتراضي.
يتيح لك برنامج VirtualBox تشغيل Linux في جهاز افتراضي، وستجد غالبًا أن الأقراص الافتراضية لديك تنمو باستمرار في الحجم، حتى لو كنت تقوم بمسح الملفات منها. سأوضح لك كيفية تقليص حجم هذه الأقراص مرة أخرى، وضغطها وتوفير مساحة القرص لديك.
لماذا لا يتقلص حجم جهاز VirtualBox Linux Guest الخاص بك تلقائيًا
إذا كنت قد استخدمت VirtualBox مع ضيوف Windows (في مصطلحات الآلة الافتراضية، “الضيف” هو نظام التشغيل الذي يعمل داخل الآلة الافتراضية)، فمن المحتمل أنك معتاد على انكماش أحجام أقراص VirtualBox الخاصة بك أثناء حذف الملفات منها، بحيث تستخدم فقط مساحة على القرص الفعلي بقدر ما تحتاج إليه لاحتواء الملفات الموجودة فيها.
هذا هو الغرض المقصود من ميزة التخصيص الديناميكي في VirtualBox، لكنها لا تعمل مع ضيوف Linux. عند استخدام ضيوف Linux، يجد العديد من المستخدمين أن الأقراص تنمو إلى حجمها الكامل، ثم لا تتقلص أبدًا عند حذف الملفات منها.
يرجع هذا إلى الطريقة التي يدير بها Linux أنظمة الملفات الخاصة به وكيفية تفاعله مع مضيفه VirtualBox. لا يقوم Linux بـ “محو” الملفات (الكتابة فوقها ببيانات فارغة) عند حذفها لأسباب تتعلق بالأداء، لذا لا توجد لدى VirtualBox طريقة لتحديد البيانات النشطة على القرص الافتراضي والبيانات التي تم حذفها.
يمكنك حل هذه المشكلة عن طريق ضبط هذه البيانات بنفسك وإخبار VirtualBox بضغط وحدة التخزين وإعادتها إلى حجمها الفعلي. وإليك كيفية القيام بذلك.
كيفية استرداد مساحة القرص من جهاز افتراضي يعمل بنظام Linux في VirtualBox
أول شيء يجب عليك فعله لاستعادة مساحة القرص من الأقراص الافتراضية لضيوف Linux هو التأكد من تمكين التخصيص الديناميكي. إذا لم يكن كذلك، فستحتاج إلى تحويل القرص إلى قرص مخصص ديناميكيًا.
بعد ذلك، قم بعمل نسخة احتياطية من القرص الافتراضي. إذا حدث خطأ ما (مثل كتابة أمر بشكل خاطئ، أو انقطاع التيار الكهربائي أثناء العملية)، فإنك تخاطر بفقدان كل البيانات الموجودة على جهاز Linux guest الخاص بك.
بعد ذلك، قم بتشغيل الأمر التالي في المحطة الطرفية على جهاز Linux الضيف الخاص بك:
sudo dd if=/dev/zero of=/var/deleteme
سيقوم هذا الأمر بكتابة البيانات الفارغة في الملف /var/deleteme حتى يمتلئ القرص بالكامل. سيؤدي هذا إلى استبدال جميع الملفات المحذوفة سابقًا، مما يحل مشكلة عدم قيام Linux باستبدال البيانات المحذوفة تلقائيًا.
كن حذرًا عند استخدام الأمر dd لأنه سيؤدي إلى استبدال البيانات دون سابق إنذار! تحقق من أوامرك ومساراتك بعناية قبل تشغيلها.
قد تستغرق هذه العملية بعض الوقت اعتمادًا على حجم المجلد، لذا تحلى بالصبر ولا تقاطعها. بمجرد الانتهاء منها، ستنتهي العملية (ربما مع ظهور خطأ يشير إلى نفاد المساحة). بمجرد حدوث ذلك، يمكنك حذف الملف الذي تم مسحه وإغلاق ضيف Linux الخاص بك:
sudo rm -rf /var/deletemesudo shutdown now -h
الآن تم مسح المساحة غير المستخدمة على القرص الافتراضي الخاص بك وسيتمكن VirtualBox من استعادة المساحة على المضيف الخاص بك عن طريق تقليص حجمها. الخطوة الأخيرة هي استخدام الأمر vboxmanage لضغط صورة القرص الافتراضي. قم بذلك عن طريق تشغيل:
vboxmanage modifymedium disk /path/to/image.vdi -compact
يجب عليك تغيير /path/to/image.vdi إلى مسار القرص الافتراضي الذي تريد ضغطه. إذا كنت تستخدم نظام التشغيل Windows، فستحتاج إلى استخدام VBoxManage.exe على النحو التالي:
VBoxManage.exe modifymedium disk /path/to/image.vdi -compact
إذا لم يكن VBoxManage.exe متاحًا من سطر الأوامر على نظام Windows الخاص بك، فاقرأ ما يلي للحصول على إرشادات حول كيفية تمكينه.
ماذا فعلت الأوامر dd Linux؟
تستخدم هذه الطريقة لضغط ضيف VirtualBox Linux أمر dd لكتابة ملف فارغ على القرص حتى يتمكن VirtualBox من التعرف على المساحة الفارغة.
ال د د يقوم الأمر (data duplicator) بتحويل الملفات ونسخها، ويمكن استخدامه أيضًا لكتابة البيانات. يوفر خيار “if” الذي تم تمريره إليه ملف الإدخال (في هذه الحالة، يوفر /dev/zero تدفقًا ثابتًا من البيانات ذات القيمة الصفرية أو البيانات الفارغة). يحدد خيار “of” ملف الإخراج، ويتم كتابة هذا التدفق من البيانات الصفرية فيه. سيستمر هذا حتى يمتلئ القرص لأن /dev/zero لا يتوقف أبدًا عن توفير البيانات الفارغة.
استخدام VboxManage.exe في Windows
بشكل افتراضي، لا يتوفر VBoxManage.exe على سطر أوامر Windows. يمكنك إضافته بتحديث مسار نظام Windows الخاص بك لتضمين دليل تثبيت VirtualBox، أو استدعاء المسار الكامل للملف القابل للتنفيذ عند استخدامه:
& "C:/Path/To/VBoxManage.exe" modifymedium disk /path/to/image.vdi -compact
الرمز “&”، والذي يسمى عامل الاتصال، والذي ينفذ الأمر المقتبس. يتيح لك هذا استخدام المسافات في المسار إلى الملف القابل للتنفيذ.
المزيد حول إدارة ضيوف VirtualBox
مع نمو عدد ضيوفك، يمكنك زيادة حجم الأقراص الافتراضية الخاصة بهم وكذلك تقليصها. تتيح لك ميزة التقاط الصور التقاط حالة الجهاز الافتراضي الخاص بك في نقطة زمنية معينة وحفظها؛ إذا كنت تريد لاحقًا العودة إلى ما كانت عليه الأمور في تلك اللحظة بالذات (على سبيل المثال بعد اختبار تغيير في التكوين)، فيمكنك ببساطة التراجع عن ذلك وسيصبح كل شيء كما كان.
VirtualBox هي أداة محاكاة افتراضية قوية يستخدمها المطورون على المستوى المهني لبناء واختبار البرامج، ويستخدمها المستخدمون المنزليون لتشغيل البرامج والألعاب القديمة على أجهزة الكمبيوتر الحديثة، أو تشغيل أنظمة تشغيل أخرى دون الحاجة إلى شراء جهاز ثانٍ. يمكنك تشغيل Windows وLinux وChromeOS وAndroid وأنظمة تشغيل أخرى على أجهزة MacOS وWindows وLinux Hosts.