Here is how to add a second disk to linux. In this article, the OS is CentOS 7.
Check to see how many drives are installed: You can do this using the df and fdisk command:
# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos_plesk-root 14G 3.9G 10G 29% / devtmpfs 910M 0 910M 0% /dev tmpfs 920M 4.0K 920M 1% /dev/shm tmpfs 920M 8.6M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 497M 215M 282M 44% /boot tmpfs 184M 0 184M 0% /run/user/1000
The above information show the primary disk as sda.
Use fdisk to identify the second drive:
# fdisk -l Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 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 Disk label type: dos Disk identifier: 0x000ab095 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 33554431 16264192 8e Linux LVM Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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
The sdb drive is the second drive and it has no information on the mount points.
Now we can partition the drive. To partition the disk – /dev/sdb, enter:
# fdisk /dev/sdb
For help using the partitioner, use the “m” command:
Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help):
partitions using the command “p”:
Command (m for help): p Disk /dev/sdb: 50.0 GB, 50019202560 bytes 255 heads, 63 sectors/track, 6081 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help):
To create a new partition, issue the command “n” and then select “p” for primary and 1-4 depending on which partition on the drive this is (first, second, third, or fourth):
n(creates a new partition)
p(creates a primary partition)
1(the number 1 denotes the partition will be /dev/sdb1)
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-6081, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-6081, default 6081): 6081
To save the partition, use the “w” command:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Now we can check to see if the partition is there:
# fdisk -l Disk /dev/sda: 17.2 GB, 17179869184 bytes, 33554432 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 Disk label type: dos Disk identifier: 0x000ab095 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 33554431 16264192 8e Linux LVM Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 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 Disk label type: dos Disk identifier: 0x884e64a3 Device Boot Start End Blocks Id System /dev/sdb1 2048 33554431 16776192 83 Linux
Format the new disk using mkfs.ext3 command:
To format Linux partions using ext3fs on the new disk, issue the following command:
# mkfs.ext3 /dev/sdb1
To format Linux partions using ext4fs on the new disk, issue the following command:
# mkfs.ext4 /dev/sdb1
Output (for using ext4):
# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1048576 inodes, 4194048 blocks 209702 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2151677952 128 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Mount the new disk using the mount command. First, you’ll need to create a mount point. We’ll use /disk2. This is where we’ll mount /dev/sdb1. Enter the following commands:
# cd / # mkdir disk2 # mount /dev/sdb1 /disk2 # df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos_plesk-root 14G 3.9G 10G 29% / devtmpfs 910M 0 910M 0% /dev tmpfs 920M 4.0K 920M 1% /dev/shm tmpfs 920M 8.6M 912M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sdb1 16G 47M 15G 1% /disk2 /dev/sda1 497M 215M 282M 44% /boot tmpfs 184M 0 184M 0% /run/user/0
Edit /etc/fstab so the new drive will automatically mount to /disk1 on reboot. Add the following:
/dev/sdb1 /disk2 ext4 defaults 0 0
# nano /etc/fstab # Created by anaconda on Wed Dec 6 19:53:05 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos_plesk-root / xfs defaults 0 0 UUID=f9b133be-f059-45e2-a296-ccddb4cebe06 /boot xfs defaults 0 0 /dev/mapper/centos_plesk-swap swap swap defaults 0 0 /dev/sdb1 /disk2 ext4 defaults 0 0
Mount the disk
# mount -a