<div dir="ltr"><div class="gmail_extra">Hi<br><br></div><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 4, 2014 at 9:56 PM, Andy D'Arcy Jewell <span dir="ltr"><<a href="mailto:andy@wild-flower.co.uk" target="_blank">andy@wild-flower.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="">On 04/06/14 21:32, Kevanf1 wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Thank you, Chris :)  Can you expand a little on the block size option<br>
please?  I know I should really have got a grasp on all of this years<br>
ago....  I didn't, I admit that I was led by the nose in using Windows<br>
and the various GUI environments in Linux.  I still use a GUI<br>
(currently Cinnamon in Linux Mint 15 and 16 on separate netbook and<br>
laptop and Mate in Fedora 19) but I am slowly really starting to enjoy<br>
the cli.<br>
</blockquote></div>
Apologies for butting in here, but here's my penyy's worth:<br>
<br>
bs=nn simply makes dd grab nn bytes of data per read, but if you don't specify it, it defaults to *one* byte of data per read. This means that if you are copying 1k of data, dd will make 1024 calls to read(), but with bs=1k, it will make just one call. The time spent making all those calls adds up to a large overhead when you are copying gigabytes or terabytes of data. On top of that, disk drives also have caches/buffers, and if you make your reads exactly the same size as this, you get even more efficiency, as the drive can read a sequential list of sectors off the disk, and into the buffer more quickly in one go, because of the way it works mechanically. If you read only one sector at a time, other reads or writes might have moved the disk heads by the time you request your next read, so the heads have to bounce round a lot more, and you have also to wait for the sector you want to spin round to be under the read-write heads. Reading a cache-full at a time avoids most of this waiting round. There are many other factors too, which can have an affect, but these are probably the most important.<br>

<br>
The cli is the route to a fuller understanding of the system, and more powerful control of it!<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
By the way, my upgrade of Fedora 19 to 20 failed :(  I know the reason<br>
why though as it's a documented item in Bugzilla.  I also know the fix<br>
which is even better.  All this again through the cli.<br>
<br>
</blockquote></div>
I gave up on fedora for exactly this sort of reason!<br>
<br>
-Andy DJ<div class=""><div class="h5"><br></div></div></blockquote><div><br></div><div>As Andy pointed out, setting the block size controls how much data will be read from the device and written to the device in a single read() -> write() copy operation.  A larger block size will mean fewer context switches and can often let the destination device manage how it wants to queue the data to write.  Larger block sizes can often be quicker when writing to flash drives / USB sticks.  I tend to use a block size of 1MiB.<br>
<br></div><div>To copy a smaller disk to a larger one and then to resize, I would roughly do:<br><br></div><div>0. Take a backup!<br></div><div>1. Boot a live disk.  You cannot dd a mounted drive!<br></div><div>2. Copy, using: dd if=/dev/sda of=/dev/sdb bs=1M<br>
</div><div>2. Resize the partition, use fdisk or what ever tool you like.<br></div><div>3. Grow the FS, using the FS specific tool<br><br></div><div>Personally, I'd use YaST or MCC (as I'm an OpenSUSE / Mageia user) to resize the partition and grow the FS rather than faffing with fdisk.<br>
<br></div><div>Another trick to know when using dd, is that you can send the USR1 signal to it to show the progress, by default dd will print nothing until it completes, in another terminal you can execute:<br><br>pkill --signal USR1 ^dd<br>
<br></div><div>This will make dd display its progress (to the terminal dd is running in).<br><br></div><div>If you're just increasing drive capacity, you shouldn't need to reinstall the boot loader / rebuild the initrd, this assumes you copy the whole drive, as mentioned above.  If you change things like <br>
the drive controller (IDE to SATA, or RAID) etc then the initrd will need to be rebuilt.<br></div><div><br></div><div>Chris<br></div></div><br></div></div>