مايو 08، 2011

تقليص المساحة المستهلكة على القرص الصلب الحقيقي من طرف الأقراص الوهمية لـ VirtualBox


عندما تتوالى التحديثات و الترقيات داخل الأنظمة الوهمية فطبيعي أن يتضخم ملف القرص الوهمي ليصل إلى أقصى مساحة مخصصة له حتى لو كانت المساحة الفعلية المستغلة داخله أقل بكثير. و وعندما تسخدم عشرات الأنظمة الوهمية عليك أن تتصور كم ستخسر على القرص الحقيقي الذي يستضيف تلك الأنظمة الوهمية.

الآلة الوهمية VirtualBox توفر طريقة للتخلص من ذلك التضخم. مثال : (يجب على النظام الوهمي أن يكون متوقفا)

VBoxManage modifyhd  VirtualMachineHardDisk.vdi  --compact



المحاولة بهذه الطريقة لن توفر لك الكثير من المساحة لسبب بسيط و هو أن الملفات المحدوفة داخل النظام الوهمي لا نتخلص منها فعليا عندما نحدفها من القرص. و طريقة حدفها فعليا ليست عملية وجيهة بخطوات سهلة لأن الأمر يتعلق بالدرجة الأولى بنظام تسيير الملفات المستخدم.

الحيلة ستكون هي إنشاء ملف ضخم بكل مساحة القرص الفارغة و سيكون ملف مصفر (free space zeroing)، بمعنى لن يحتوي على أي شيء فعلي سوى الفراغ و استنفاد كل المساحة قرص الوهمي معوضا كل شيء بأصفار.

على قرص فيدورا 15 مثلا سأنفذ من داخلها الأمر $ df -h و النتيجة ستكون كالتالي:

-

Filesystem            Size  Used Avail Use% Mounted on
rootfs                8.4G  3.2G  5.2G  39% /
udev                  195M     0  195M   0% /dev
tmpfs                 202M  260K  201M   1% /dev/shm
tmpfs                 202M  596K  201M   1% /run
/dev/mapper/VolGroup-lv_root
                      8.4G  3.2G  5.2G  39% /
tmpfs                 202M     0  202M   0% /sys/fs/cgroup
tmpfs                 202M  596K  201M   1% /var/run
tmpfs                 202M  596K  201M   1% /var/lock
tmpfs                 202M     0  202M   0% /media
/dev/sda1             485M   70M  391M  16% /boot
/dev/mapper/VolGroup-lv_root
                      8.4G  3.2G  5.2G  39% /tmp
/dev/mapper/VolGroup-lv_root
                      8.4G  3.2G  5.2G  39% /var/tmp
/dev/mapper/VolGroup-lv_root
                      8.4G  3.2G  5.2G  39% /home




الآن و حسب مثالي أعلاه ألاحظ وجود ثلاثة أقسام (partitions) هي ( / /home /boot يمكنني أن أفرغها بالطريقة التي وصفت سابقا:

من على حساب المدير سأنفذ:

-

$ cd /boot
$ dd if=/dev/zero of=zerofill bs=1M
$ sync
$ rm /boot/zerofill


$ cd /root/
$ dd if=/dev/zero of=zerofill bs=1M
$ sync
$ rm /root/zerofill

$ cd /home/
$ dd if=/dev/zero of=zerofill bs=1M
$ sync
$ rm /home/zerofill



على بعض التوزيعات تحتاج فقط لملء قسم الجدع /. المهم هو ألا تنسى حدف ملفات التصفير كما فعلت في مثالي ($ rm /home/zerofill)


بعد إيقاف النظام الوهمي سننفذ خاصية تقليص القرص الوهمي من على النظام الحقيقي كما أشرت في بداية الموضوع:


-


VBoxManage modifyhd  Fedora-15.vdi  --compact


و بهذا سنوفر مساحة لا بأس بها.


-

ليست هناك تعليقات:

إرسال تعليق