Difference between revisions of "Adding a second hard drive to your HDA"

From Amahi Wiki
Jump to: navigation, search
(198 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{MessageBox|
+
<center>{{MessageBox|
 
backgroundcolor = #faa|
 
backgroundcolor = #faa|
 
image =Warning.png|
 
image =Warning.png|
 
heading =WARNING|
 
heading =WARNING|
message = This is recommended only for advanced users, proceed with caution.}}
+
message = This is recommended only for ''Advanced'' users, proceed with caution.}}</center>
[[Adding_drives_to_your_HDA|Adding drives to your HDA]] is another howto on doing this, a bit shorter and less elaborate, which can be good for some people, specially a novice unfamiliar with doing any of this.
+
<div style="border: 1px solid #A3B1BF; padding: .8em 1em; background-color: #E6F2FF; margin: 0px 1em;">
  
More hard drives can be added in your Amahi HDA for additional storage space.
+
'''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.
  
We'll detail how to add such hard drives, and how to put them to good use.
 
 
=Important Notes=
 
 
* This is an how-to on how to add additional drives to your HDA.
 
* 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.
 
* This page and script does not support GUID-partitioned drives (such as drives previously in a Mac or have GPT partition tables). You can find what your partition is like with <code>fdisk -l</code>
 
 
=Make sure your drive is detected by Fedora=
 
 
Open a Terminal, and type the following command:
 
 
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 0 1em;">
 
ls -1 /dev/disk/by-id/ | egrep -v "part|scsi"
 
 
</div>
 
</div>
 +
<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.
  
Look for the line that matches the hard drive you added.
+
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.
  
IDE and SATA hard drives will start with '''ata-''' and USB hard drives will start with '''usb-'''.<br/>
+
=Disclaimer=
Look for your hard drive model and serial number.
+
* [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.
  
Example:
+
* [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.
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
* [http://en.wikipedia.org/wiki/GNU_nano nano] is used as the command-line text editor (refer to [http://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/ beginners guide to nano] as needed).
[gb@hda ~]$ ls -1 /dev/disk/by-id/ | egrep -v "part|scsi"
 
ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V
 
ata-ST31000528AS_6VP08W65
 
ata-ST3750640A_3QD0LJN8
 
ata-ST3750640A_5QD27A57
 
ata-WDC_WD10EADS-00L5B1_WD-WCAU4C700358
 
usb-ST310003_33AS_9E1CA6FFFFFF-0:0
 
usb-ST375064_0A_2009031309E2-0:0
 
</div>
 
  
=Install prerequisites=
+
=Prerequisites=
 +
[[Open Terminal as root|In a Terminal, as root]], verify disk tools are installed by executing:<br />
  
[[Open Terminal as root|In a Terminal, as root]], type the following (two) commands:
+
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">
  yum -y install pmount fuse fuse-libs ntfs-3g gparted util-linux-ng
+
  dnf -y install pmount fuse fuse-libs ntfs-3g util-linux-ng parted nano
 
</div>
 
</div>
  
* Ubuntu  
+
:'''NOTE:'''  <code>yum</code> (deprecated) has been replaced with <code>dnf</code> as the package manager for Fedora 23 and greater.
 +
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">
 
  sudo apt-get -y install gparted
 
  sudo apt-get -y install gparted
 
</div>
 
</div>
  
Drives must be formatted as '''MBR''' not '''GUID/GPT''' for hda-diskmount to recognize the disk.
+
:'''NOTE:'''  Hard drives must be formatted as '''MBR''' not '''GUID/GPT''' for ''hda-diskmount'' to work correctly.
  
=Partition and format the hard drive=
+
=Preparation=
 +
[[Open_Terminal_as_root|In terminal as root]], execute the following to capture current hard drive configuration:
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin:  3px 3px 1em 3px;">
 +
ls -l /dev/disk/by-id/ > before.txt
 +
cat before.txt
 +
</div>
  
This step is optional, and should only be executed if you want to delete the content of your new hard drive, or if the hard drive has not yet been formatted.
+
: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
  
You should (unless you have a good reason not to) use GParted to partition and format your hard drive.<br/>
+
Power ''OFF'' the HDA and install/connect any additional hard drive(s).<br />
Not having X installed would qualify as a good reason! In such cases, either use SSH X11 Forwarding (Google that if you'd like to use this), or [[Adding_a_second_hard_drive_to_your_HDA#Using_cfdisk|use cfdisk]] from a [[Open Terminal as root|Terminal, as root]].
 
  
You'll probably want to create a single partition, and format it as ''ext3''.<br/>
+
=Identify=
Note that Windows can't read ext3 partitions, so if you want dual-boot Windows on your Amahi PC, or if you intend to connect this hard drive to a Windows computer later, you should format as NTFS instead, and you should do that on Windows before you connect the drive in your HDA.<br/>
+
Power ''ON'' the HDA and collect data about the new hard drive configuration. Again, save this to a text file for reference.
Remember that using NTFS partitions on Linux will be slower that using ext3 partitions, so you should only use NTFS if you really need it.<br/>
 
How much slower: compare the blue bars (NTFS-3G) with the red bars (ext3) on [http://www.tuxera.com/products/tuxera-ntfs-commercial/performance/ this graph].
 
  
To know what device (/dev/sdX) you need to partition and format, use the following command, in a [[Open Terminal as root|Terminal, as root]]:
+
[[Open_Terminal_as_root|In a terminal as root]], execute the following to capture current hard drive configuration:
 
+
<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; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
  ls -l /dev/disk/by-id/ > after.txt
  ls -l /dev/disk/by-id/
+
cat after.txt
 
</div>
 
</div>
  
Find the row corresponding to your hard drive, and look at the end of the line to identify the correct device to use.
+
:EXAMPLE:
 
 
Example:
 
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"><small>
 
[gb@hda ~]$ ls -l /dev/disk/by-id/
 
total 0
 
 
  lrwxrwxrwx 1 root root  9 2010-02-18 03:24  ata-Hitachi_HDS722020ALA330_JK1131YAGDU37V -> ../../sda
 
  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 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 -> ../../sdb
</small>
 
</div>
 
  
In the above example, /dev/sdb would be what I would select in GParted (or use on the cfdisk command). sda in my primary hard drive, and sdb my second hard drive.
+
:'''FYI:'''  IDE/SATA hard drives will start with '''ata-''' and USB hard drives will start with '''usb-'''.<br/>
  
==Using GParted==
+
=Partition/Format=
From the HDA desktop (or using VNC), [[Open Terminal as root]] and type '''gparted''' to launch the GParted application.
+
Compare the difference between before.txt and after.txt to determine the new hard drive(s) device name.  This can be done automatically.
  
Select the device (/dev/sdX) that you found above.
+
[[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;">
 +
diff before.txt after.txt
 +
</div>
  
In the above example, /dev/sdb would be what I would select in GParted.
+
:EXAMPLE:
 +
lrwxrwxrwx 1 root root  9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65 -> ../../sdb
  
There are many easy to follow guides online on how to use GParted. You should Google for one, to find one that seems clear to you.
+
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.
  
[http://www.mepisguides.com/Mepis-6/Install/gparted/gparted-set-partition.html Here's one] that looks simple. Just use ext3 instead of fat32 in you follow that tutorial.
+
==Command-line (Fedora)==
 +
To partition the hard drive(s), substitute sdX with hard drive device name, such as ''sdb'':
  
Note that gparted supports GUID-partitioned drives, however, these directions and script do not support it at the moment.
+
[[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;">
 +
parted /dev/sdX
 +
</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:
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin:  3px 3px 1em 3px;">
 +
ls -l /dev/disk/by-id/
 +
</div>
 +
: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
 +
<span style="color:#FF0000">'''lrwxrwxrwx 1 root root  9 2010-02-18 03:24 ata-ST31000528AS_6VP08W65-part1 -> ../../sdb1'''</span>
  
==Using cfdisk==
+
The new partition is named sdX1 (i.e. sdb1 in <span style="color:#FF0000">'''RED'''</span>).
From a [[Open Terminal as root|terminal, as root]], type '''cfdisk /dev/sdX''' to launch the cfdisk application.
 
  
If you have a GUID-partitioned drive, cfdisk will complain. GUID partitions are not supported.
+
Format the partition, execute (can substitute ext3):
 +
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin:  3px 3px 1em 3px;">
 +
mkfs.ext4 -j /dev/sdX1
 +
</div></blockquote>
  
Make sure to replace /dev/sdX with the actual device (eg. /dev/sdb) that you found above.
+
Repeat the [[Adding_a_second_hard_drive_to_your_HDA#Partition/Format|Partition/Format]] step for each hard drive to be partitioned and formatted.
  
If your hard drive contains existing partitions, select them one by one at the top (using up/down arrow keys), then select the '''[ Delete ]''' action (using the left/right arrow keys), then hit ENTER.
+
==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.
You should now only have Free Space listed at the top.<br/>
 
Select the '''[ New ]''' action, and accept the default (Primary, and size).
 
 
 
You should now have a single partition listed at the top, of type Linux.<br/>
 
Select the '''[ Write ]''' action, then '''[ Quit ]'''.
 
 
 
Now that you partitioned your drive, you need to format your newly created partition.<br/>
 
To format as EXT3, use this command:
 
 
 
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
 
mkfs.ext3 -j /dev/sdX1
 
</div>
 
  
Replace ext3 with ext4 in the above command to format your partition as EXT4 instead of EXT3.
+
Here's a general introduction on [http://www.youtube.com/watch?v=vdWkdrnNGRg YouTube]. Just use ''ext3'' or ''ext4'' instead of ''fat32'' if you follow that tutorial.
  
'''/dev/sdX1''' in the above command refers to the partition your created in cfdisk.<br/>
+
For drives > 2.0 TB, following these steps:
Go back in cfdisk, and check the ''Name'' column if you're unsure.<br/>
+
* Choose hard disk in the dropdown menu (top right)
If you see ''sdb1'' in the name column, you should use '''/dev/sdb1''' in the above command.
+
* Select Device > Create Partition Table... > Advanced > (Choose 'gpt')
 +
* Create partition
  
==Partition over 2.1TB==
 
Here is a work around for drives with partitions over 2.1TB like the new 3TB drives.
 
  
Page: [[Partitions_Over_2.1_TB]]
+
:<b>NOTE:</b>  [http://gparted.org GParted] supports GUID-partitioned drives, however, the hda-mount script do not support currently.
  
=Mount the hard drive=
+
Repeat the [[Adding_a_second_hard_drive_to_your_HDA#Partition/Format|Partition/Format]] step for each hard drive to be partitioned and formatted.
  
A script is provided with Amahi that will look for unmounted partitions in your system, and mount any it finds.
+
=Mount=
 +
Mount the hard drive(s)/partition(s) for use in the HDA.
  
[[Open Terminal as root|In a Terminal, as root]], type the following command:
+
:'''NOTE:'''  If you prefer not to use ''hda-diskmount'', refer to [[Adding_a_second_hard_drive_to_your_HDA#hda-diskmount|Troubleshooting ''hda-diskmount]].
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
[[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;">
 
  hda-diskmount
 
  hda-diskmount
 
</div>
 
</div>
  
Example:
+
:EXAMPLE:
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left;">
 
<small>
 
[root@hda ~]$ hda-diskmount
 
 
  ****************************************************************
 
  ****************************************************************
 
  Ignoring /dev/sda1 - already in /etc/fstab or mounted
 
  Ignoring /dev/sda1 - already in /etc/fstab or mounted
 
  ****************************************************************
 
  ****************************************************************
  Mounted /dev/<strong style="color:green">sdb1</strong> as '<strong style="color:red">/var/hda/files/drives/sdb1</strong>' (read-write)
+
  Mounted /dev/<strong style="color:green">sdb1</strong> as '<strong style="color:red">/var/hda/files/drives/drive1</strong>' (read-write)
 
  You may want your system to mount it every time you boot.
 
  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:
 
  To do so, add this line VERY CAREFULLY to /etc/fstab and reboot:
  <strong style="color:blue">UUID=9d972abc-1639-44df-a60e-668618d40236 /var/hda/files/drives/sdb1 ext4 defaults 1 2</strong>
+
  <strong style="color:blue">UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2</strong>
 
  ****************************************************************
 
  ****************************************************************
 
  All Linux, Windows and Mac partitions on non-removable disks have been mounted
 
  All Linux, Windows and Mac partitions on non-removable disks have been mounted
</small>
 
</div>
 
  
Do '''not''' edit /etc/fstab just yet. What you'll need to add there will depend on how you want to use the extra storage. More about that below.<br/>
+
The line in <span style="color:#0000FF">'''BLUE'''</span> 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.
Just note down the information in bold (green, red and blue). We'll use them below.
 
  
Note about ext4 in the blue line above: that doesn't necessarily mean your partition is formatted as ext4. It means the ext4 driver will be used to mount your partition. Since that driver is backward compatible, it can be safely used to mount ext2, ext3 and ext4 partitions.
+
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.  
  
If you get something like ''Disk /dev/dm-0 doesn't contain a valid partition table'' or ''mount: unknown file system type 'lvm2pv''' its because you have LVM's that 'fdisk' can not recognize (or something similar). It's nothing to worry about if you get that when executing the hda-diskmount script.
+
The new hard drive storage space can be used for [[Adding_a_second_hard_drive_to_your_HDA#All Shares|All Shares]], [[Adding_a_second_hard_drive_to_your_HDA#Some Shares|Some Shares]], or the [[Adding_a_second_hard_drive_to_your_HDA#Greyhole Storage Pool|Greyhole Storage Pool]]. Follow the guidance below based on desired usage for each hard drive.
  
==Test your hard drive==
+
==All Shares==
Optionally, you can test your new drive for bad blocks.<br/>
+
Host '''ALL''' shares on the new hard drive.
Note that this step can take a ''long'' time to complete! You'll probably want to start it in the evening, to have it completed in the morning.
 
  
To do so, [[Open Terminal as root|in a Terminal, as root]], type the following command. Replace <strong style="color:green">sdb1</strong> with the (green) value you received from hda-diskmount.
+
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:
 
<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/<strong style="color:green">sdb1</strong>
+
mv /var/hda/files/* <strong style="color:red">/var/hda/files/drives/drive1/</strong>
 
</div>
 
</div>
  
You'll receive a warning that says "WARNING!!! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)?"<br/>
+
:'''NOTE:''There may be a '''WARNING''' that can be ignored indicating ''/var/hda/files/drives cannot be moved to a subdirectory of itself''.
Answer ''yes''. The -cn option we're using can safely be used on mounted filesystems.
 
  
=Use the hard drive=
+
Unmount the new hard drive:
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
 +
umount /var/hda/files/drives/drive1/
 +
</div>
 +
Mount the new hard drive permanently as ''/var/hda/files'' by editing ''/etc/fstab'':
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin:  3px 3px 1em 3px;">
 +
nano /etc/fstab
 +
</div>
 +
Add the line to ''/etc/fstab'' provided in the ''hda-diskmount'' output in '''<span style="color: blue;">BLUE</span>''' and change the second value (path) to ''/var/hda/files''.
  
You have a choice here on how to use your new hard drive storage space. We'll offer some examples.
+
:EXAMPLE hda-diskmount output (Original):
 +
<span style="color: blue;">UUID=547b073d-e591-4913-b4fb-7c5084353979 <strong>/var/hda/files/drives/drive1</strong> ext4 defaults 1 2</span>
 +
:EXAMPLE hda-diskmount output (Modified):
 +
UUID=547b073d-e591-4913-b4fb-7c5084353979 <strong>/var/hda/files</strong> ext4 defaults 1 2
  
==Use the hard drive for all shares==
+
: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
 +
<span style="color:#0000FF">'''UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files ext4 defaults 1 2'''</span>
 +
Finally, execute the following:
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
 +
mount -a
 +
ls /var/hda/files/
 +
</div>
 +
The last command will display contents of the new hard drive.  All shares are now located on the new hard drive.
  
If you want all your shares to be on your new hard drive, here's how to do that.
+
==Some Shares==
 +
Host '''SOME''' shares on the new hard drive.  
  
First, you'll want to move all you previous shares data, if any, into your new drive.<br/>
+
Move some shares data to the new drive by executing the following command (replace path in '''<span style="color: red;">RED</span>''' with the path from the ''hda-diskmount'' output line in <span style="color:#0000FF">'''BLUE'''</span>; sharename will be the share to move to the new drive).<br />
You only need to do this next command if you have data that you care about in the /var/hda/files/* folders.<br/>
+
 
[[Open Terminal as root|In a Terminal, as root]], type the following command. Replace the path in red with the path you received when you ran hda-diskmount.
+
[[Open Terminal as root|In a Terminal, as root]], execute 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;">
  mv /var/hda/files/* <strong style="color:red">/var/hda/files/drives/sdb1/</strong>
+
  mv /var/hda/files/<strong>sharename</strong> <strong style="color:red">/var/hda/files/drives/drive1/</strong>
 
</div>
 
</div>
You'll get a warning about "cannot move `/var/hda/files/drives' to a subdirectory of itself"; that is fine, ignore that.
+
Repeat the process with every share to be moved to the new drive.
 
 
Next, you'll need to unmount your new hard drive, and remount it as /var/hda/files
 
  
 +
Unmount the new hard 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;">
  umount /var/hda/files/drives/sdb1/
+
  umount /var/hda/files/drives/drive1
 
</div>
 
</div>
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
Mount the new hard drive permanently by editing ''/etc/fstab'':
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
 
  nano /etc/fstab
 
  nano /etc/fstab
 
</div>
 
</div>
 +
Add the line to ''/etc/fstab'' provided in the ''hda-diskmount'' output in '''<span style="color: blue;">BLUE</span>'''.
 +
: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
 +
<span style="color:#0000FF">'''UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2'''</span>
 +
Verify the hard drive(s)/partition(s) configuration is correct in ''/etc/fstab''.
  
In nano, you'll need to add a new line at the bottom. Take the line that hda-diskmount gave you (the blue one), and change the second value (the path).<br/>
+
Next, execute the following:
Replace the second value with '''/var/hda/files'''.
 
 
 
hda-diskmount gave me:
 
 
<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;">
  <span style="color:blue">UUID=9d972abc-1639-44df-a60e-668618d40236 <strong>/var/hda/files/drives/sdb1</strong> ext4 defaults 1 2</span>
+
  mount -a
 +
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.
 +
 +
'''<u>HDA Dashboard Update</u><br />'''
 +
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 <span style="color:red">/var/hda/files/movies</span> but the new location might be <span style="color:blue">/var/hda/files/drives/drive1/movies</span>.
  
So I should add this instead:
+
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.
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
 
  UUID=9d972abc-1639-44df-a60e-668618d40236 <strong>/var/hda/files</strong> ext4 defaults 1 2
+
'''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 [https://www.amahi.org/apps/dlna 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 [[Storage_pooling|Greyhole Storage Pool]].
 +
 
 +
[[Open Terminal as root|In a Terminal, as root]], mount the new hard drive permanently  by editing ''/etc/fstab'':
 +
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
 +
  nano /etc/fstab
 
</div>
 
</div>
 +
Add the line to ''/etc/fstab'' provided in the ''hda-diskmount'' output in '''<span style="color: blue;">BLUE</span>'''.
 +
: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
 +
<span style="color:#0000FF">'''UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2'''</span>
 +
Verify the hard drive(s)/partition(s) configuration is correct in ''/etc/fstab''.
  
Make sure you do '''not''' change anything else from the blue line you received from hda-diskmount.<br/>
+
Refer to [[Greyhole#Amahi 6|Greyhole (Amahi 6)]] for Ubuntu or [[Greyhole#Amahi 7|Greyhole (Amahi 7)]] for Fedora to configure the [[Storage_pooling|Greyhole Storage Pool]].
It might not be the same thing as the above example; you need to use the values you've received.
 
  
Save and exit nano (CTRL-X, Y, ENTER), and try your new mount:
+
=Verify/Test=
 +
Verify the hard drive/partition is mounted.
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
[[Open Terminal as root|In a Terminal, as root]], execute the following:
  mount -a
+
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
ls /var/hda/files/
+
  df -h
 
</div>
 
</div>
  
That last command should show you the content of you new hard drive.
+
:EXAMPLE:
 
+
Filesystem                  Size  Used Avail Use% Mounted on
That's it. All your shares in /var/hda/files are now on your new hard drive.
+
/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
  
==Use the hard drive for only some shares==
+
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.
 +
<br />
  
If you want only some of your shares to be on your new hard drive, here's how to do that.
+
=Tips=
 +
==Mount Order==
 +
The following guide will outline how to manually order hard drives and mount them automatically on boot.
  
First, you'll want to move your previous shares data, if any, into your new drive.<br/>
+
[[Open Terminal as root|In a Terminal, as root]], executing the following command to obtain the UUID for each hard drive:
You only need to do this next command if you have data that you care about in the /var/hda/files/* folders (that you want on the new drive).<br/>
 
[[Open Terminal as root|In a Terminal, as root]], type the following command. Replace the path in red with the path you received when you ran hda-diskmount. Replace '''something''' with the name of the share you want to have on your new drive (the share should already exist).
 
 
<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;">
  mv /var/hda/files/<strong>something</strong> <strong style="color:red">/var/hda/files/drives/sdb1/</strong>
+
  blkid
 
</div>
 
</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"
  
Repeat with every share you want on your new drive.
+
In this case, there are four data drives (sda1, sdb1, sdc1, sdd1) and the Operating system assigned to a fifth drive, sde.
  
Next, you'll need to make the mount permanent
+
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;">
umount /var/hda/files/drives/sdb1<br/>
 
 
  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.  Ensure correct UUID, hard drive number and hard drive file system (ext4 in this case) are added.
  
In nano, you'll need to add a new line at the bottom. Take the line that hda-diskmount gave you, and insert that.<br/>
+
:EXAMPLE:
 +
UUID=55d9333f-d801-425a-b2af-d65c5966d56f /var/hda/files/drives/drive1 ext4 defaults 1 2
  
So, following previous examples, I should add this:
+
It should look something like the following when lines are added for each of the five drives in this example.   
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left;">
+
:EXAMPLE:
  <span style="color: blue;">UUID=9d972abc-1639-44df-a60e-668618d40236 /var/hda/files/drives/sdb1 ext4 defaults 1 2</span>
+
# Mounting Greyhole Drives for Drive Pool.
</div>
+
#
 +
# 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
 +
#
 +
#
  
Save and exit nano (CTRL-X, Y, ENTER), and try your new mount:
+
:'''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
ls /var/hda/files/drives/sdb1
 
 
</div>
 
</div>
 +
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!
  
That last command should show you the content of you new hard drive.
+
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'''.
  
That's it. Your share(s) are now on your new hard drive.
+
If all drives mounted successfully, it should look something like this (Ubuntu):
  
==Use the hard drive in your Greyhole storage pool==
+
:EXAMPLE:
 +
[[File:Gstreet_greyhole_pool.png|options|caption]]
  
If you want to add your new hard drive to your Greyhole storage pool, here's how to do that.
+
==Bad Blocks==
 +
Optionally, you can test your new drive for bad blocks.<br/>
  
First, you'll need to make the mount permanent. [[Open Terminal as root|In a Terminal, as root]], type the following command:
+
:'''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 '''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;">
  umount /var/hda/files/drives/sdb1
+
  e2fsck -cn /dev/'''sdb1'''
nano /etc/fstab
 
 
</div>
 
</div>
 +
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>
  
In nano, you'll need to add a new line at the bottom. Take the line that hda-diskmount gave you, and insert that.<br/>
+
Most drives will power down on their own without doing this.
  
So, following previous examples, I should add 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.
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px; text-align: left;">
+
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).
  <span style="color: blue;">UUID=9d972abc-1639-44df-a60e-668618d40236 /var/hda/files/drives/sdb1 ext4 defaults 1 2</span>
+
 
</div>
+
=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) [[Open Terminal as root|in a Terminal, as root]] by executing the following:
 +
<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
 +
</div></blockquote>
 +
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;">
 +
ls -l /dev/disk/by-uuid/
 +
</div></blockquote>
 +
 
 +
: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 <span style="color:#FF0000">'''547b073d-e591-4913-b4fb-7c5084353979'''</span> -> ../../sdb1
 +
 
 +
:The UUID for sdX1 (i.e. sdb1 is <span style="color:#FF0000">'''RED'''</span>).
 +
Add the following to the end of ''/etc/fstab'', replacing the UUID as captured in the previous step
 +
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin:  3px 3px 1em 3px;">
 +
nano /etc/fstab
 +
</div></blockquote>
 +
: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
 +
  <span style="color:#0000FF">'''UUID=547b073d-e591-4913-b4fb-7c5084353979 /var/hda/files/drives/drive1 ext4 defaults 1 2'''</span>
  
Save and exit nano (CTRL-X, Y, ENTER), and try your new mount:
+
:The new entry will be mounted as ''/var/hda/files/drives/drive1'' (i.e. sdb1 in '''<span style="color:#0000FF">BLUE</span>''')
  
<div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
+
Mount the hard drive
 +
<blockquote><div style="border: 1px solid #A3B1BF; padding: .5em 1em; background-color: #E6F2FF; margin: 3px 3px 1em 3px;">
 
  mount -a
 
  mount -a
</div>
+
</div></blockquote>
 
+
:If all goes well, there should not be any output. If there are errors, stop and diagnose the problem.
Finally, you'll need to configure Greyhole to select your new partition. To configure Greyhole, Advanced Settings must be enabled under [http://hda/setup?sub=settings&tab=setting Setup &gt; Settings].
 
  
In the [http://hda/setup?sub=disk_pooling&tab=share Shares &gt; Storage Pool page] of your Amahi dashboard, you'll see a list of mounted partitions, with checkboxes next to each, allowing you to include those partitions in your storage pool.
+
Accomplish [[Adding_Hard_Drives_101#Verify/Test|Verify/Test]] step to ensure the hard drive is properly mounted.<br />
  
You should now have a new row in there, referring to /var/hda/files/drives/sdb1.
+
Repeat this process for each hard drive to be mounted.
  
Select it (click the checkbox).
+
==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.1_TB|Partitions over 2.1TB]] guidance.
  
That's it. Your new hard drive just increased your Greyhole storage pool capacity.
+
=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].

Revision as of 15:05, 26 August 2020

Warning.png 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.

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.

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 with dnf 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:

  1. mklabel msdos (answer yes if prompted)
  2. mkpart primary 0% 100%
  3. quit


Greater than 2TB, at the (parted) prompt, enter:

  1. mklabel gpt (answer yes if prompted)
  2. mkpart primary 0% 100%
  3. 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.

All Shares

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.

Some Shares

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:

caption

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.