<br>#!/bin/bash<br>for h in $( `df | grep -v &quot;Available&quot; | awk &#39;{print $NF}&#39;`   );do<br>   echo &quot;Cleaning partition $h&quot;<br><span>   sudo</span> <span>dd</span> if=/<span>dev</span>/zero of=$h<span>zerofile</span> &amp;&amp; <span>sudo</span> <span>rm</span> $h<span>zerofile</span><br>
done<br><br><br>I recommend testing this with just the echo first.  Make sure the list of partitions looks correct. <br>Some df behave differently so you need to verify it first before you just run you nasty dd command to fill up the drives. <br>
<br>I think writing all 0 till the disk fills and dd errors out is a bad thing because it could cause running processes to crash. <br><br>But there is your bash foo for today.<br><br><br><br><br><div class="gmail_quote">On Mon, Aug 1, 2011 at 8:05 PM, Daevid Vincent <span dir="ltr">&lt;<a href="mailto:daevid@daevid.com">daevid@daevid.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div link="blue" vlink="purple" lang="EN-US"><div><p class="MsoNormal">I use <span>VirtualBox</span> quite a lot, but one of the drawbacks of Linux guest VMs is that there is no built in way to shrink the .<span>vdi</span> disks… they just continually grow.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">However, you can manually shrink them by doing this:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span>sudo</span> <span>dd</span> if=/<span>dev</span>/zero of=./<span>zerofile</span> &amp;&amp; <span>sudo</span> <span>rm</span> ./<span>zerofile</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">then execute:<u></u><u></u></p><p class="MsoNormal"><span>VBoxManage</span> <span>modifyhd</span> %USERPROFILE%\.<span>VirtualBox</span>\<span>HardDisks</span>\<span>myVBVM.vdi</span> –compact<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">The process is more tedious if you’re using FreeBSD or other Unix flavors that have multiple partitions.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Can someone give me a little bash-<span>fu</span> that will loop over every partition, execute that <span>dd</span> and <span>rm</span> command?<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m pretty sure it will involve “<span>df</span>” and <span>sed</span>/<span>awk</span>, but maybe there’s a better way to find all the partitions on ANY <span>unix</span> variant? We mix FreeBSD, Debian, Ubuntu VMs here for various purposes.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks in advance,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">d.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">
<u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div><br>_______________________________________________<br>
svlug mailing list<br>
<a href="mailto:svlug@lists.svlug.org">svlug@lists.svlug.org</a><br>
<a href="http://lists.svlug.org/lists/listinfo/svlug" target="_blank">http://lists.svlug.org/lists/listinfo/svlug</a><br>
<br></blockquote></div><br>