So, apparently, some people aren’t sure how to properly add a new disk to a Linux server. Well, it’s pretty simple if you are using something like Cloud Block Storage and have ondemand. But even if you don’t, after adding the disk into your Linux machine, here is the process of going about adding a standard disk, fdisking (partitioning), formating (mkfs), and the mounting process itself, including that in fstab.
Step 1. List the disk’s on the box
$ fdisk -l Device Boot Start End Sectors Size Id Type /dev/xvda1 * 2048 41940991 41938944 20G 83 Linux Disk /dev/xvdb: 75 GiB, 80530636800 bytes, 157286400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
As we can see the new 75GiB drive I added hasn’t any file system on it yet.
Step 2. Let’s start partitioning the disk
$ fdisk /dev/xvdb Device Boot Start End Sectors Size Id Type /dev/xvda1 * 2048 41940991 41938944 20G 83 Linux Disk /dev/xvdb: 75 GiB, 80530636800 bytes, 157286400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Step 3. Let’s create a new partition using ‘n’ key, and then let’s state we want a primary partition using ‘p’.
Step 4: Let’s set the first and last sectors of the disk (you can type enter and the machine will normally chose something sane for you). It’s also possible to add multiple partitions of a single device, but for this tutorial we won’t be covering that.
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-157286399, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-157286399, default 157286399): Created a new partition 1 of type 'Linux' and of size 75 GiB.
Step 4. Write the disk using the ‘w’ key, and then after it’s finished confirm with fdisk that new partition is present.
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. root@tesladump:/home# fdisk -l Disk /dev/xvda: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0c708d98 Device Boot Start End Sectors Size Id Type /dev/xvda1 * 2048 41940991 41938944 20G 83 Linux Disk /dev/xvdb: 75 GiB, 80530636800 bytes, 157286400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x07c2e0a6 Device Boot Start End Sectors Size Id Type /dev/xvdb1 2048 157286399 157284352 75G 83 Linux
Now the disk has been partitioned.
Step 5. So lets create an (EXT3) file system on the device.
$ mkfs -t ext3 /dev/xvdb1 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 19660544 4k blocks and 4915200 inodes Filesystem UUID: c717ddbd-d5c9-4bb1-a8af-b521d38cbb14 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
So that is the file system done. Now all we need to do is mount it. We can do that thru the /etc/fstab file, and also using the mount -a command.
Step 6. Simply we edit our /etc/fstab to accommodate the new disk
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # #/dev/xvda1 / ext3 errors=remount-ro,noatime,barrier=0 0 1 /dev/xvdb1 /home/thetesladump ext3 defaults,noatime,nofail 0 0
Here we choose to mount the partition1 /dev/xvdb (/dev/xvdb1) on the symlink directory /home/thetesladump . A little FTP I temporarily wanted to host.
So we setup the new 75Gig cloud block device to be mounted at the ftp user thetesladump’s root home user directory. All ready to go. wooo.
Step 7. Complete hte process by running a mount -a
mount -a
Step 8. Confirm your disks are mounted where you wanted
root@tesladump:/home/theteslasociety# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 1.1G 18G 6% / udev 10M 0 10M 0% /dev tmpfs 199M 21M 179M 11% /run tmpfs 498M 0 498M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 498M 0 498M 0% /sys/fs/cgroup /dev/xvdb1 74G 178M 70G 1% /home/thetesladump