2

I have a 500GB external drive. It had two partitions, each around 250GB. I removed the first partition. I'd like to move the 2nd to the left, so it consumes 100% of the drive. How can this be accomplished without any GUI tools (CLI only)?

fdisk

Disk /dev/sdd: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xc80b1f3d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd2           29374       60801   252445410   83  Linux

parted

Model: ST350032 0AS (scsi)
Disk /dev/sdd: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End    Size   Type     File system  Flags
 2      242GB  500GB  259GB  primary  ext3         type=83  

dumpe2fs

Filesystem volume name:   extstar                            
Last mounted on:          <not available>                    
Filesystem UUID:          f0b1d2bc-08b8-4f6e-b1c6-c529024a777d
Filesystem magic number:  0xEF53                              
Filesystem revision #:    1 (dynamic)                         
Filesystem features:      has_journal dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash                                                
Default mount options:    (none)                                                               
Filesystem state:         clean                                                                
Errors behavior:          Continue                                                             
Filesystem OS type:       Linux                                                                
Inode count:              15808608                                                             
Block count:              63111168                                                             
Reserved block count:     0                                                                    
Free blocks:              2449985                                                              
Free inodes:              15799302
First block:              0
Block size:               4096
Fragment size:            4096
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8208
Inode blocks per group:   513
Filesystem created:       Mon Feb 15 08:07:01 2010
Last mount time:          Fri May 21 19:31:30 2010
Last write time:          Fri May 21 19:31:30 2010
Mount count:              5
Maximum mount count:      29
Last checked:             Mon May 17 14:52:47 2010
Check interval:           15552000 (6 months)
Next check after:         Sat Nov 13 14:52:47 2010
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      d0363517-c095-4f53-baa7-7428c02fbfc6
Journal backup:           inode blocks
Journal size:             128M
Felipe Alvarez
  • 183
  • 2
  • 12

1 Answers1

1

It seems that parted is what you are looking for. The documentation is here.

To do what you want, you either delete the first partition (which you have already done), move the second partition with the parted command move, then resize it.

Or you can recreate the fist partition, copy all the data from the second partition to the first, delete the second partition and resize the first.

My gut feeling is to go with the second option. Less meddling with the partition table.

And as usual, do a backup beforehand.

Dan Andreatta
  • 5,384
  • 2
  • 23
  • 14
  • FWIW, i've used gparted many times w/o any data loss. On ext3 and even ntfs (XP & 2000). It's a little frightening, becuase by default it doesn't give any feedback after the move/resize commnads. Make sure your plugged in (if it's a laptop) and that there's no risk of power loss ... – Jason May 21 '10 at 12:03
  • gparted can do it. Of this I am sure, and so very grateful. Therefore, If one program can do it, one that is probably using GNU parted for most of the work, I seek a command-line only way to achieve the same thing. – Felipe Alvarez Nov 07 '10 at 06:36
  • @FelipeAlvarez Both `gparted` and `parted` use the library `libparted.so` where all the logic is implemented; said differently `gparted` is "just" a graphical frontend on top of `parted`, so anything doable in `gparted` should be possible to do in `parted` and the opposite... – Patrick Mevzek Jun 02 '22 at 23:10