Difference between revisions of "Adding a second hard drive to your HDA"
(56 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
<div style="border: 1px solid #A3B1BF; padding: .8em 1em; background-color: #E6F2FF; margin: 0px 1em;"> | <div style="border: 1px solid #A3B1BF; padding: .8em 1em; background-color: #E6F2FF; margin: 0px 1em;"> | ||
− | '''NOTE:''' | + | '''NOTE:''' The Amahi [https://www.amahi.org/apps/disk-wizard Disk Wizard] application (Amahi 8 or greater '''ONLY''') provides this capability from the Dashboard UI. |
</div> | </div> | ||
<br /> | <br /> | ||
The purpose of this tutorial is to make partitioning, formatting, and mounting hard drives in the Amahi server simple for those new to Linux. | The purpose of this tutorial is to make partitioning, formatting, and mounting hard drives in the Amahi server simple for those new to Linux. | ||
− | |||
− | |||
In order to keep this process simple, it's important '''NOT''' to connect additional hard drive(s) until the end of the [[Adding_a_second_hard_drive_to_your_HDA#Preparation|Preparation]] step. | In order to keep this process simple, it's important '''NOT''' to connect additional hard drive(s) until the end of the [[Adding_a_second_hard_drive_to_your_HDA#Preparation|Preparation]] step. | ||
=Disclaimer= | =Disclaimer= | ||
+ | * [https://www.amahi.org Amahi] cannot be held responsible for any data breakage or destruction arising from the use or misuse of this script. We provide it as a service in good will. You accept this automatically if you use the script. | ||
+ | |||
+ | * [http://en.wikipedia.org/wiki/GUID_Partition_Table GUID-partitioned] hard drives (such as those previously used in a Mac or have GPT partition tables) are not supported in this tutorial. | ||
− | * [ | + | * [http://en.wikipedia.org/wiki/GNU_nano nano] is used as the command-line text editor (refer to [https://linuxize.com/post/how-to-use-nano-text-editor/ how to install/use the nano editor] as needed). |
− | |||
− | |||
=Prerequisites= | =Prerequisites= | ||
Line 27: | Line 26: | ||
Fedora | Fedora | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left"> | ||
− | + | dnf -y install pmount fuse fuse-libs ntfs-3g util-linux-ng parted nano | |
</div> | </div> | ||
+ | |||
+ | :'''NOTE:''' <code>yum</code> (deprecated) has been replaced with <code>dnf</code> as the package manager for Fedora 23 and greater. | ||
Ubuntu | Ubuntu | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left"> | ||
Line 41: | Line 42: | ||
ls -l /dev/disk/by-id/ > before.txt | ls -l /dev/disk/by-id/ > before.txt | ||
cat before.txt | cat before.txt | ||
− | </div | + | </div> |
:EXAMPLE: | :EXAMPLE: | ||
Line 56: | Line 57: | ||
ls -l /dev/disk/by-id/ > after.txt | ls -l /dev/disk/by-id/ > after.txt | ||
cat after.txt | cat after.txt | ||
− | </div | + | </div> |
:EXAMPLE: | :EXAMPLE: | ||
Line 63: | Line 64: | ||
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb | lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb | ||
+ | :'''FYI:''' IDE/SATA hard drives will start with '''ata-''' and USB hard drives will start with '''usb-'''.<br/> | ||
− | + | =Partition/Format= | |
+ | Compare the difference between before.txt and after.txt to determine the new hard drive(s) device name. This can be done automatically. | ||
− | + | [[Open Terminal as root|In a Terminal, as root]], execute the following: | |
− | |||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
diff before.txt after.txt | diff before.txt after.txt | ||
− | </div | + | </div> |
:EXAMPLE: | :EXAMPLE: | ||
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb | lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb | ||
− | At this point, partition and format the hard drive(s) if they are new. For hard drive(s) that contain data to be preserved, skip to the [[ | + | At this point, partition and format the hard drive(s) if they are new. For hard drive(s) that contain data to be preserved, skip to the [[Adding_a_second_hard_drive_to_your_HDA#Mount|Mount]] step. |
==Command-line (Fedora)== | ==Command-line (Fedora)== | ||
− | To partition the hard drive(s), | + | To partition the hard drive(s), substitute sdX with hard drive device name, such as ''sdb'': |
+ | [[Open Terminal as root|In a Terminal, as root]], execute the following: | ||
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
parted /dev/sdX | parted /dev/sdX | ||
− | </div></blockquote | + | </div></blockquote> |
− | + | Up to 2TB, at the ''(parted)'' prompt, enter: | |
− | + | # mklabel msdos (answer ''yes'' if prompted) | |
− | + | # mkpart primary 0% 100% | |
− | + | # quit | |
− | + | <br /> | |
− | + | Greater than 2TB, at the ''(parted)'' prompt, enter: | |
− | + | # mklabel gpt (answer ''yes'' if prompted) | |
− | + | # mkpart primary 0% 100% | |
− | + | # quit | |
+ | <br /> | ||
Verify the new partition was created: | Verify the new partition was created: | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
− | ls -l /dev/disk/by- | + | ls -l /dev/disk/by-id/ |
− | </div | + | </div> |
:EXAMPLE: | :EXAMPLE: | ||
− | lrwxrwxrwx 1 root root | + | lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V -> ../../sda |
− | lrwxrwxrwx 1 root root 10 | + | lrwxrwxrwx 1 root root 10 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V-part1 -> ../../sda1 |
− | + | lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb | |
− | lrwxrwxrwx 1 root root | + | <span style="color:#FF0000">'''lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65-part1 -> ../../sdb1'''</span> |
− | |||
− | <span style="color:#FF0000">'''lrwxrwxrwx 1 root root | ||
The new partition is named sdX1 (i.e. sdb1 in <span style="color:#FF0000">'''RED'''</span>). | The new partition is named sdX1 (i.e. sdb1 in <span style="color:#FF0000">'''RED'''</span>). | ||
Line 109: | Line 111: | ||
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
mkfs.ext4 -j /dev/sdX1 | mkfs.ext4 -j /dev/sdX1 | ||
− | </div></blockquote | + | </div></blockquote> |
Repeat the [[Adding_a_second_hard_drive_to_your_HDA#Partition/Format|Partition/Format]] step for each hard drive to be partitioned and formatted. | Repeat the [[Adding_a_second_hard_drive_to_your_HDA#Partition/Format|Partition/Format]] step for each hard drive to be partitioned and formatted. | ||
− | == | + | ==GParted (Ubuntu)== |
From the HDA desktop (or using VNC), [[Open_Terminal_as_root|In a terminal as root]] and type '''gparted''' to launch the application. | From the HDA desktop (or using VNC), [[Open_Terminal_as_root|In a terminal as root]] and type '''gparted''' to launch the application. | ||
Line 122: | Line 124: | ||
* Select Device > Create Partition Table... > Advanced > (Choose 'gpt') | * Select Device > Create Partition Table... > Advanced > (Choose 'gpt') | ||
* Create partition | * Create partition | ||
+ | |||
:<b>NOTE:</b> [http://gparted.org GParted] supports GUID-partitioned drives, however, the hda-mount script do not support currently. | :<b>NOTE:</b> [http://gparted.org GParted] supports GUID-partitioned drives, however, the hda-mount script do not support currently. | ||
Line 130: | Line 133: | ||
Mount the hard drive(s)/partition(s) for use in the HDA. | Mount the hard drive(s)/partition(s) for use in the HDA. | ||
− | + | :'''NOTE:''' If you prefer not to use ''hda-diskmount'', refer to [[Adding_a_second_hard_drive_to_your_HDA#hda-diskmount|Troubleshooting ''hda-diskmount]]. | |
+ | |||
+ | [[Open Terminal as root|In a Terminal, as root]], execute the following(it will create drive1, drive2, etc and mount the hard drive(s) automatically): | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
hda-diskmount | hda-diskmount | ||
− | </div | + | </div> |
:EXAMPLE: | :EXAMPLE: | ||
Line 155: | Line 160: | ||
Host '''ALL''' shares on the new hard drive. | Host '''ALL''' shares on the new hard drive. | ||
− | Move all the shares data to the new drive, replacing path in '''<span style="color: red;">RED</span>''' with the path from the ''hda-diskmount'' output line in <span style="color:#0000FF">'''BLUE'''</span> | + | Move all the shares data to the new drive, replacing path in '''<span style="color: red;">RED</span>''' with the path from the ''hda-diskmount'' output line in <span style="color:#0000FF">'''BLUE'''</span>.<br /> |
[[Open Terminal as root|In a Terminal, as root]], execute the following: | [[Open Terminal as root|In a Terminal, as root]], execute the following: | ||
Line 162: | Line 167: | ||
</div> | </div> | ||
− | :'''NOTE:''' There may be a '''WARNING''' indicating ''/var/hda/files/drives cannot be moved to a subdirectory of itself'' | + | :'''NOTE:''' There may be a '''WARNING''' that can be ignored indicating ''/var/hda/files/drives cannot be moved to a subdirectory of itself''. |
Unmount the new hard drive: | Unmount the new hard drive: | ||
Line 238: | Line 243: | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
mount -a | mount -a | ||
− | ls /var/hda/files/ | + | ls /var/hda/files/drives/drive1 |
</div> | </div> | ||
The last command will display contents of the new hard drive. All shares are now located on the new hard drive. | The last command will display contents of the new hard drive. All shares are now located on the new hard drive. | ||
Line 252: | Line 257: | ||
==Greyhole Storage Pool== | ==Greyhole Storage Pool== | ||
− | Use new hard drive for Greyhole Storage Pool. | + | Use new hard drive for [[Storage_pooling|Greyhole Storage Pool]]. |
[[Open Terminal as root|In a Terminal, as root]], mount the new hard drive permanently by editing ''/etc/fstab'': | [[Open Terminal as root|In a Terminal, as root]], mount the new hard drive permanently by editing ''/etc/fstab'': | ||
Line 277: | Line 282: | ||
=Verify/Test= | =Verify/Test= | ||
− | Verify the hard drive/partition is mounted: | + | Verify the hard drive/partition is mounted. |
+ | |||
+ | [[Open Terminal as root|In a Terminal, as root]], execute the following: | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
df -h | df -h | ||
− | </div | + | </div> |
:EXAMPLE: | :EXAMPLE: | ||
Line 298: | Line 305: | ||
=Tips= | =Tips= | ||
==Mount Order== | ==Mount Order== | ||
− | The following will outline how to manually order | + | The following guide will outline how to manually order hard drives and mount them automatically on boot. |
+ | |||
+ | [[Open Terminal as root|In a Terminal, as root]], executing the following command to obtain the UUID for each hard drive: | ||
+ | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
+ | blkid | ||
+ | </div> | ||
+ | :EXAMPLE: | ||
+ | /dev/sda1: LABEL="Seagate-Alpha2TB" UUID="55d9333f-d801-425a-b2af-d65c5966d56f" TYPE="ext4" | ||
+ | /dev/sdb1: LABEL="Seagate-Beta2TB" UUID="5bd5498f-30c1-4780-948e-ca46656507d2" TYPE="ext4" | ||
+ | /dev/sdc1: LABEL="WD-Charlie2TB" UUID="a7337504-376a-4d36-9f7a-1a24c0f55fbd" TYPE="ext4" | ||
+ | /dev/sdd1: LABEL="WD-Delta2TB" UUID="8d881dcb-8de3-4621-b9bd-00025196868a" TYPE="ext4" | ||
+ | /dev/sde1: LABEL="root" UUID="4d6f8004-d190-4234-a03b-b68de988abf0" TYPE="ext4" | ||
+ | /dev/sde3: LABEL="home" UUID="d0531fa1-9311-4d53-b838-f35898adbd98" TYPE="ext4" | ||
+ | /dev/sde5: LABEL="swap" UUID="3c39206c-ba60-47ff-a1fe-f5821b2ab543" TYPE="swap" | ||
− | + | In this case, there are four data drives (sda1, sdb1, sdc1, sdd1) and the Operating system assigned to a fifth drive, sde. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | In this case, | ||
− | Take note of the UUID's for each drive. Easiest to cut and paste UUID's straight from the terminal | + | Take note of the UUID's for each drive. Easiest to cut and paste UUID's straight from the terminal. |
− | + | Edit ''/etc/fstab'' to mount each drive: | |
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
nano /etc/fstab | nano /etc/fstab | ||
</div> | </div> | ||
− | Then '''very carefully''' add the following line for each disk into the end of the fstab file. | + | Then '''very carefully''' add the following line for each disk into the end of the fstab file. Ensure correct UUID, hard drive number and hard drive file system (ext4 in this case) are added. |
+ | |||
+ | :EXAMPLE: | ||
UUID=55d9333f-d801-425a-b2af-d65c5966d56f /var/hda/files/drives/drive1 ext4 defaults 1 2 | UUID=55d9333f-d801-425a-b2af-d65c5966d56f /var/hda/files/drives/drive1 ext4 defaults 1 2 | ||
− | It should look something like the following when lines are added for each of the five drives in this example. | + | It should look something like the following when lines are added for each of the five drives in this example. |
− | + | ||
+ | :EXAMPLE: | ||
# Mounting Greyhole Drives for Drive Pool. | # Mounting Greyhole Drives for Drive Pool. | ||
# | # | ||
Line 343: | Line 354: | ||
# | # | ||
# | # | ||
− | + | ||
− | + | :'''NOTE:''' Lines beginning with # are comments where the remainder of the line is ignored | |
+ | |||
+ | Verify there are no issues by executing the following: | ||
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
mount -a | mount -a | ||
</div> | </div> | ||
− | If | + | If there are errors,most likely a line was not added properly. If this is not corrected, the machine may not boot and hang trying to mount the hard drives! |
− | + | Once there are no errors, reboot machine: | |
+ | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
+ | reboot | ||
+ | </div> | ||
+ | Verify the hard drives have successfully mounted in the '''HDA Dashboard'''. | ||
− | + | If all drives mounted successfully, it should look something like this (Ubuntu): | |
− | |||
− | |||
− | |||
− | |||
+ | :EXAMPLE: | ||
[[File:Gstreet_greyhole_pool.png|options|caption]] | [[File:Gstreet_greyhole_pool.png|options|caption]] | ||
Line 365: | Line 379: | ||
:'''NOTE:''' This can take a ''long'' time to complete! Recommend starting it in the evening so it will be completed the next day. | :'''NOTE:''' This can take a ''long'' time to complete! Recommend starting it in the evening so it will be completed the next day. | ||
− | [[Open Terminal as root|In a Terminal, as root]], execute following command (replace <strong style="color: | + | [[Open Terminal as root|In a Terminal, as root]], execute following command (replace '''sdb1''' with the (<strong style="color:blue">BLUE</strong>) value you received from ''hda-diskmount''): |
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
− | e2fsck -cn /dev/ | + | e2fsck -cn /dev/'''sdb1''' |
</div> | </div> | ||
− | You'll receive a | + | You'll receive a message stating '''WARNING!!!''' ''Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)?''<br/> |
+ | |||
+ | Answer ''yes''. The <code>-cn</code> option we're using can safely be used on mounted file systems. | ||
+ | ==Spin Down Hard Drives== | ||
+ | |||
+ | Low power is a good thing to have in servers. If you do not use your server very often, you may want to force the hard drives to spin down faster than the default. Here is how. | ||
+ | |||
+ | First ensure ''hdparm'' package is installed: | ||
+ | sudo dnf install hdparm | ||
+ | |||
+ | To force to spin down after 10 minutes of being idle, add these lines to <code>/etc/rc.local</code>: | ||
+ | <pre> | ||
+ | # power drives down after 10 minutes idle | ||
+ | /sbin/hdparm -S120 /dev/sda | ||
+ | /sbin/hdparm -S120 /dev/sdb | ||
+ | ... | ||
+ | </pre> | ||
− | + | Most drives will power down on their own without doing this. | |
+ | |||
+ | Once stopped, the drive may take as long as 30 seconds to respond to a subsequent disk access, though most drives are much quicker. The encoding of the -S timeout value is somewhat peculiar. A value of zero means "timeouts are disabled": the device will not automatically enter standby mode. Values from 1 to 240 specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes. Values from 241 to 251 specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5 hours. A value of 252 signifies a timeout of 21 minutes. A value of 253 sets a vendor-defined timeout period between 8 and 12 hours, and the value 254 is reserved. 255 is interpreted as 21 minutes plus 15 seconds. Note that some older drives may have very different interpretations of these values. | ||
+ | |||
+ | It may make the system run cooler and power efficient (especially on a Home Server you are rarely using all of the pool drives at the same time). | ||
=Troubleshooting= | =Troubleshooting= | ||
==hda-diskmount== | ==hda-diskmount== | ||
− | If ''hda-diskmount'' does not mount the hard drive | + | If ''hda-diskmount'' does not mount the hard drive or you prefer to do it manually, complete the following steps: |
− | + | Create the mount point (choose one '''NOT''' in use) [[Open Terminal as root|in a Terminal, as root]] by executing the following: | |
− | |||
− | Create the mount point (choose one '''NOT''' in use) | ||
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
mkdir -p /var/hda/files/drives/drive1 | mkdir -p /var/hda/files/drives/drive1 | ||
− | </div></blockquote | + | </div></blockquote> |
Identify the hard drive to mount and copy the UUID from the output that corresponds to the hard drive (i.e. sdb) | Identify the hard drive to mount and copy the UUID from the output that corresponds to the hard drive (i.e. sdb) | ||
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
ls -l /dev/disk/by-uuid/ | ls -l /dev/disk/by-uuid/ | ||
− | </div></blockquote | + | </div></blockquote> |
:EXAMPLE: | :EXAMPLE: | ||
Line 400: | Line 432: | ||
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
nano /etc/fstab | nano /etc/fstab | ||
− | </div></blockquote | + | </div></blockquote> |
:EXAMPLE: | :EXAMPLE: | ||
# | # | ||
Line 420: | Line 452: | ||
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | <blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> | ||
mount -a | mount -a | ||
− | </div></blockquote | + | </div></blockquote> |
:If all goes well, there should not be any output. If there are errors, stop and diagnose the problem. | :If all goes well, there should not be any output. If there are errors, stop and diagnose the problem. | ||
Line 426: | Line 458: | ||
Repeat this process for each hard drive to be mounted. | Repeat this process for each hard drive to be mounted. | ||
+ | |||
==Partitions > 2.1TB== | ==Partitions > 2.1TB== | ||
− | If by following this tutorial you are unable to mount hard drives with partitions > 2.1TB, refer to [[Partitions_Over_2.1_TB|Partitions over 2.1TB]] guidance. | + | If by following this tutorial you are unable to mount hard drives with partitions > 2.1TB, refer to the [[Partitions_Over_2.1_TB|Partitions over 2.1TB]] guidance. |
=Help= | =Help= | ||
If you need assistance, please post in the [https://forums.amahi.org Amahi Forums] or receive '''LIVE''' support on the [http://talk.amahi.org Amahi IRC channel]. | If you need assistance, please post in the [https://forums.amahi.org Amahi Forums] or receive '''LIVE''' support on the [http://talk.amahi.org Amahi IRC channel]. |
Latest revision as of 08:30, 24 October 2024
WARNING | |
---|---|
This is recommended only for Advanced users, proceed with caution. |
NOTE: The Amahi Disk Wizard application (Amahi 8 or greater ONLY) provides this capability from the Dashboard UI.
The purpose of this tutorial is to make partitioning, formatting, and mounting hard drives in the Amahi server simple for those new to Linux.
In order to keep this process simple, it's important NOT to connect additional hard drive(s) until the end of the Preparation step.
Contents
Disclaimer
- Amahi cannot be held responsible for any data breakage or destruction arising from the use or misuse of this script. We provide it as a service in good will. You accept this automatically if you use the script.
- GUID-partitioned hard drives (such as those previously used in a Mac or have GPT partition tables) are not supported in this tutorial.
- nano is used as the command-line text editor (refer to how to install/use the nano editor as needed).
Prerequisites
In a Terminal, as root, verify disk tools are installed by executing:
Fedora
dnf -y install pmount fuse fuse-libs ntfs-3g util-linux-ng parted nano
- NOTE:
yum
(deprecated) has been replaced withdnf
as the package manager for Fedora 23 and greater.
Ubuntu
sudo apt-get -y install gparted
- NOTE: Hard drives must be formatted as MBR not GUID/GPT for hda-diskmount to work correctly.
Preparation
In terminal as root, execute the following to capture current hard drive configuration:
ls -l /dev/disk/by-id/ > before.txt cat before.txt
- EXAMPLE:
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V -> ../../sda lrwxrwxrwx 1 root root 10 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V-part1 -> ../../sda1
Power OFF the HDA and install/connect any additional hard drive(s).
Identify
Power ON the HDA and collect data about the new hard drive configuration. Again, save this to a text file for reference.
In a terminal as root, execute the following to capture current hard drive configuration:
ls -l /dev/disk/by-id/ > after.txt cat after.txt
- EXAMPLE:
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V -> ../../sda lrwxrwxrwx 1 root root 10 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V-part1 -> ../../sda1 lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb
- FYI: IDE/SATA hard drives will start with ata- and USB hard drives will start with usb-.
Partition/Format
Compare the difference between before.txt and after.txt to determine the new hard drive(s) device name. This can be done automatically.
In a Terminal, as root, execute the following:
diff before.txt after.txt
- EXAMPLE:
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb
At this point, partition and format the hard drive(s) if they are new. For hard drive(s) that contain data to be preserved, skip to the Mount step.
Command-line (Fedora)
To partition the hard drive(s), substitute sdX with hard drive device name, such as sdb:
In a Terminal, as root, execute the following:
parted /dev/sdX
Up to 2TB, at the (parted) prompt, enter:
- mklabel msdos (answer yes if prompted)
- mkpart primary 0% 100%
- quit
Greater than 2TB, at the (parted) prompt, enter:
- mklabel gpt (answer yes if prompted)
- mkpart primary 0% 100%
- quit
Verify the new partition was created:
ls -l /dev/disk/by-id/
- EXAMPLE:
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V -> ../../sda
lrwxrwxrwx 1 root root 10 2010-02-18 03:24 ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V-part1 -> ../../sda1
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb
lrwxrwxrwx 1 root root 9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65-part1 -> ../../sdb1
The new partition is named sdX1 (i.e. sdb1 in RED).
Format the partition, execute (can substitute ext3):
mkfs.ext4 -j /dev/sdX1
Repeat the Partition/Format step for each hard drive to be partitioned and formatted.
GParted (Ubuntu)
From the HDA desktop (or using VNC), In a terminal as root and type gparted to launch the application.
Here's a general introduction on YouTube. Just use ext3 or ext4 instead of fat32 if you follow that tutorial.
For drives > 2.0 TB, following these steps:
- Choose hard disk in the dropdown menu (top right)
- Select Device > Create Partition Table... > Advanced > (Choose 'gpt')
- Create partition
- NOTE: GParted supports GUID-partitioned drives, however, the hda-mount script do not support currently.
Repeat the Partition/Format step for each hard drive to be partitioned and formatted.
Mount
Mount the hard drive(s)/partition(s) for use in the HDA.
- NOTE: If you prefer not to use hda-diskmount, refer to Troubleshooting hda-diskmount.
In a Terminal, as root, execute the following(it will create drive1, drive2, etc and mount the hard drive(s) automatically):
hda-diskmount
- EXAMPLE:
**************************************************************** Ignoring /dev/sda1 - already in /etc/fstab or mounted **************************************************************** Mounted /dev/sdb1 as '/var/hda/files/drives/drive1' (read-write) You may want your system to mount it every time you boot. To do so, add this line VERY CAREFULLY to /etc/fstab and reboot: UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2 **************************************************************** All Linux, Windows and Mac partitions on non-removable disks have been mounted
The line in BLUE is what you need to copy and add to the bottom of /etc/fstab. This is REQUIRED for the hard drive(s) to be permanently mounted.
There will be multiple lines for multiple hard drive(s) added. Ensure you copy and add ONLY those which were not present in the before.txt file.
The new hard drive storage space can be used for All Shares, Some Shares, or the Greyhole Storage Pool. Follow the guidance below based on desired usage for each hard drive.
Host ALL shares on the new hard drive.
Move all the shares data to the new drive, replacing path in RED with the path from the hda-diskmount output line in BLUE.
In a Terminal, as root, execute the following:
mv /var/hda/files/* /var/hda/files/drives/drive1/
- NOTE: There may be a WARNING that can be ignored indicating /var/hda/files/drives cannot be moved to a subdirectory of itself.
Unmount the new hard drive:
umount /var/hda/files/drives/drive1/
Mount the new hard drive permanently as /var/hda/files by editing /etc/fstab:
nano /etc/fstab
Add the line to /etc/fstab provided in the hda-diskmount output in BLUE and change the second value (path) to /var/hda/files.
- EXAMPLE hda-diskmount output (Original):
UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2
- EXAMPLE hda-diskmount output (Modified):
UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files ext4 defaults 1 2
- EXAMPLE /etc/fstab:
#
# /etc/fstab
# Created by anaconda on Sat Nov 9 01:46:39 2013
#
# 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
#
UUID=1ebbf241-528c-465e-889f-acc15400dd8c / ext4 defaults 1 1
UUID=087b15a5-c3ca-4615-b6ee-bf5f399a803e /boot ext4 defaults 1 2
UUID=75346b8e-b162-458c-b0e9-a8d48ec2bc82 swap swap defaults 0 0
UUID=ad85eeb9-18f0-4b85-9bfa-b88a5d1489b3 swap swap defaults 0 0
UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files ext4 defaults 1 2
Finally, execute the following:
mount -a ls /var/hda/files/
The last command will display contents of the new hard drive. All shares are now located on the new hard drive.
Host SOME shares on the new hard drive.
Move some shares data to the new drive by executing the following command (replace path in RED with the path from the hda-diskmount output line in BLUE; sharename will be the share to move to the new drive).
In a Terminal, as root, execute the following:
mv /var/hda/files/sharename /var/hda/files/drives/drive1/
Repeat the process with every share to be moved to the new drive.
Unmount the new hard drive:
umount /var/hda/files/drives/drive1
Mount the new hard drive permanently by editing /etc/fstab:
nano /etc/fstab
Add the line to /etc/fstab provided in the hda-diskmount output in BLUE.
- EXAMPLE /etc/fstab:
#
# /etc/fstab
# Created by anaconda on Sat Nov 9 01:46:39 2013
#
# 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
#
UUID=1ebbf241-528c-465e-889f-acc15400dd8c / ext4 defaults 1 1
UUID=087b15a5-c3ca-4615-b6ee-bf5f399a803e /boot ext4 defaults 1 2
UUID=75346b8e-b162-458c-b0e9-a8d48ec2bc82 swap swap defaults 0 0
UUID=ad85eeb9-18f0-4b85-9bfa-b88a5d1489b3 swap swap defaults 0 0
UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2
Verify the hard drive(s)/partition(s) configuration is correct in /etc/fstab.
Next, execute the following:
mount -a ls /var/hda/files/drives/drive1
The last command will display contents of the new hard drive. All shares are now located on the new hard drive.
HDA Dashboard Update
The location of each share that was moved to the new hard drive will need updated. Select Setup followed by the Shares section. Expand each share that was moved individually and change the location (path) accordingly.
For example, the original movies location was /var/hda/files/movies but the new location might be /var/hda/files/drives/drive1/movies.
Repeat for any other shares that you have moved to the new hard drive. Verify these shares are accessible from another machine within your network.
NOTE: If any services depend on the location of a moved share, ensure they are configured to use the new share location. For example, if DLNA is installed, check the configuration file to verify it can find the new share location. Secondly, validate that that all such services start correctly and behave as expected. If the service doesn't start, it may be that it's looking for a specific share location during the service start up.
Greyhole Storage Pool
Use new hard drive for Greyhole Storage Pool.
In a Terminal, as root, mount the new hard drive permanently by editing /etc/fstab:
nano /etc/fstab
Add the line to /etc/fstab provided in the hda-diskmount output in BLUE.
- EXAMPLE /etc/fstab:
#
# /etc/fstab
# Created by anaconda on Sat Nov 9 01:46:39 2013
#
# 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
#
UUID=1ebbf241-528c-465e-889f-acc15400dd8c / ext4 defaults 1 1
UUID=087b15a5-c3ca-4615-b6ee-bf5f399a803e /boot ext4 defaults 1 2
UUID=75346b8e-b162-458c-b0e9-a8d48ec2bc82 swap swap defaults 0 0
UUID=ad85eeb9-18f0-4b85-9bfa-b88a5d1489b3 swap swap defaults 0 0
UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2
Verify the hard drive(s)/partition(s) configuration is correct in /etc/fstab.
Refer to Greyhole (Amahi 6) for Ubuntu or Greyhole (Amahi 7) for Fedora to configure the Greyhole Storage Pool.
Verify/Test
Verify the hard drive/partition is mounted.
In a Terminal, as root, execute the following:
df -h
- EXAMPLE:
Filesystem Size Used Avail Use% Mounted on /dev/sda5 16G 4.3G 11G 30% / devtmpfs 493M 0 493M 0% /dev tmpfs 498M 84K 498M 1% /dev/shm tmpfs 498M 364K 498M 1% /run tmpfs 498M 0 498M 0% /sys/fs/cgroup tmpfs 498M 1.1M 497M 1% /tmp /dev/sda1 190M 75M 102M 43% /boot /dev/sdb1 917G 398G 473G 46% /var/hda/files/drives/drive1
The hard drive(s) and the mount point (path) should be listed for each hard drive added. If not, then further investigation will be needed to determine the problem.
Tips
Mount Order
The following guide will outline how to manually order hard drives and mount them automatically on boot.
In a Terminal, as root, executing the following command to obtain the UUID for each hard drive:
blkid
- EXAMPLE:
/dev/sda1: LABEL="Seagate-Alpha2TB" UUID="55d9333f-d801-425a-b2af-d65c5966d56f" TYPE="ext4" /dev/sdb1: LABEL="Seagate-Beta2TB" UUID="5bd5498f-30c1-4780-948e-ca46656507d2" TYPE="ext4" /dev/sdc1: LABEL="WD-Charlie2TB" UUID="a7337504-376a-4d36-9f7a-1a24c0f55fbd" TYPE="ext4" /dev/sdd1: LABEL="WD-Delta2TB" UUID="8d881dcb-8de3-4621-b9bd-00025196868a" TYPE="ext4" /dev/sde1: LABEL="root" UUID="4d6f8004-d190-4234-a03b-b68de988abf0" TYPE="ext4" /dev/sde3: LABEL="home" UUID="d0531fa1-9311-4d53-b838-f35898adbd98" TYPE="ext4" /dev/sde5: LABEL="swap" UUID="3c39206c-ba60-47ff-a1fe-f5821b2ab543" TYPE="swap"
In this case, there are four data drives (sda1, sdb1, sdc1, sdd1) and the Operating system assigned to a fifth drive, sde.
Take note of the UUID's for each drive. Easiest to cut and paste UUID's straight from the terminal.
Edit /etc/fstab to mount each drive:
nano /etc/fstab
Then very carefully add the following line for each disk into the end of the fstab file. Ensure correct UUID, hard drive number and hard drive file system (ext4 in this case) are added.
- EXAMPLE:
UUID=55d9333f-d801-425a-b2af-d65c5966d56f /var/hda/files/drives/drive1 ext4 defaults 1 2
It should look something like the following when lines are added for each of the five drives in this example.
- EXAMPLE:
# Mounting Greyhole Drives for Drive Pool. # # Drive1 = Seagate-Alpha2TB in Microserver Bay 1 from left UUID=55d9333f-d801-425a-b2af-d65c5966d56f /var/hda/files/drives/drive1 ext4 defaults 1 2 # # Drive2 = Seagate-Beta2TB in Microserver Bay 2 from left UUID=5bd5498f-30c1-4780-948e-ca46656507d2 /var/hda/files/drives/drive2 ext4 defaults 1 2 # # Drive3 = WD-Charlie2TB in Microserver Bay 3 from left UUID=a7337504-376a-4d36-9f7a-1a24c0f55fbd /var/hda/files/drives/drive3 ext4 defaults 1 2 # # Drive4 = WD-Delta2TB in Microserver Bay 4 from left UUID=8d881dcb-8de3-4621-b9bd-00025196868a /var/hda/files/drives/drive4 ext4 defaults 1 2 # # Drive5 = 250GB OS Drive mounted in Optical Drive bay UUID="4d6f8004-d190-4234-a03b-b68de988abf0 /var/hda/files/drives/drive5 ext4 defaults 1 2 # #
- NOTE: Lines beginning with # are comments where the remainder of the line is ignored
Verify there are no issues by executing the following:
mount -a
If there are errors,most likely a line was not added properly. If this is not corrected, the machine may not boot and hang trying to mount the hard drives!
Once there are no errors, reboot machine:
reboot
Verify the hard drives have successfully mounted in the HDA Dashboard.
If all drives mounted successfully, it should look something like this (Ubuntu):
- EXAMPLE:
Bad Blocks
Optionally, you can test your new drive for bad blocks.
- NOTE: This can take a long time to complete! Recommend starting it in the evening so it will be completed the next day.
In a Terminal, as root, execute following command (replace sdb1 with the (BLUE) value you received from hda-diskmount):
e2fsck -cn /dev/sdb1
You'll receive a message stating WARNING!!! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)?
Answer yes. The -cn
option we're using can safely be used on mounted file systems.
Spin Down Hard Drives
Low power is a good thing to have in servers. If you do not use your server very often, you may want to force the hard drives to spin down faster than the default. Here is how.
First ensure hdparm package is installed:
sudo dnf install hdparm
To force to spin down after 10 minutes of being idle, add these lines to /etc/rc.local
:
# power drives down after 10 minutes idle /sbin/hdparm -S120 /dev/sda /sbin/hdparm -S120 /dev/sdb ...
Most drives will power down on their own without doing this.
Once stopped, the drive may take as long as 30 seconds to respond to a subsequent disk access, though most drives are much quicker. The encoding of the -S timeout value is somewhat peculiar. A value of zero means "timeouts are disabled": the device will not automatically enter standby mode. Values from 1 to 240 specify multiples of 5 seconds, yielding timeouts from 5 seconds to 20 minutes. Values from 241 to 251 specify from 1 to 11 units of 30 minutes, yielding timeouts from 30 minutes to 5.5 hours. A value of 252 signifies a timeout of 21 minutes. A value of 253 sets a vendor-defined timeout period between 8 and 12 hours, and the value 254 is reserved. 255 is interpreted as 21 minutes plus 15 seconds. Note that some older drives may have very different interpretations of these values.
It may make the system run cooler and power efficient (especially on a Home Server you are rarely using all of the pool drives at the same time).
Troubleshooting
hda-diskmount
If hda-diskmount does not mount the hard drive or you prefer to do it manually, complete the following steps:
Create the mount point (choose one NOT in use) in a Terminal, as root by executing the following:
mkdir -p /var/hda/files/drives/drive1
Identify the hard drive to mount and copy the UUID from the output that corresponds to the hard drive (i.e. sdb)
ls -l /dev/disk/by-uuid/
- EXAMPLE:
lrwxrwxrwx 1 root root 10 Dec 29 18:10 1b8597e0-5d95-4474-b093-53099c8c81c9 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 29 18:10 1c161033-c695-4291-aba1-257d3987edf7 -> ../../dm-0
lrwxrwxrwx 1 root root 10 Dec 29 18:10 b7017251-cb54-438b-92a3-781537c565e6 -> ../../sdb
lrwxrwxrwx 1 root root 10 Dec 29 18:10 c1fe62b3-41dc-4a67-8a6b-09f90b7893ba -> ../../dm-1
lrwxrwxrwx 1 root root 10 Dec 29 18:10 e0f5a9bd-f52b-431e-89af-61da70659bdd -> ../../dm-2
lrwxrwxrwx 1 root root 10 Dec 29 18:10 547b073d-e591-4913-b4fb-7c5084353979 -> ../../sdb1
- The UUID for sdX1 (i.e. sdb1 is RED).
Add the following to the end of /etc/fstab, replacing the UUID as captured in the previous step
nano /etc/fstab
- EXAMPLE:
#
# /etc/fstab
# Created by anaconda on Sat Nov 9 01:46:39 2013
#
# 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
#
UUID=1ebbf241-528c-465e-889f-acc15400dd8c / ext4 defaults 1 1
UUID=087b15a5-c3ca-4615-b6ee-bf5f399a803e /boot ext4 defaults 1 2
UUID=75346b8e-b162-458c-b0e9-a8d48ec2bc82 swap swap defaults 0 0
UUID=ad85eeb9-18f0-4b85-9bfa-b88a5d1489b3 swap swap defaults 0 0
UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2
- The new entry will be mounted as /var/hda/files/drives/drive1 (i.e. sdb1 in BLUE)
Mount the hard drive
mount -a
- If all goes well, there should not be any output. If there are errors, stop and diagnose the problem.
Accomplish Verify/Test step to ensure the hard drive is properly mounted.
Repeat this process for each hard drive to be mounted.
Partitions > 2.1TB
If by following this tutorial you are unable to mount hard drives with partitions > 2.1TB, refer to the Partitions over 2.1TB guidance.
Help
If you need assistance, please post in the Amahi Forums or receive LIVE support on the Amahi IRC channel.