This guide will walk you through the process of setting up your drives to automatically mount when your Ubuntu system boots up. >[!note] Use a LLM >Drive set up is something that can be easily walked through and automated with the help of a LLM. We used Claude 3.7 Sonnet to set our drives and write this manual. In the following are system specific instructions for the bnk homelab and generic instructions for any other system. ## Generic Instructions - An Ubuntu system (this guide uses Ubuntu 24.04) - Administrator (sudo) privileges - Basic terminal knowledge - The drives you want to mount ### Step 1: Identify Your Drives First, you need to identify the drives you want to mount. There are two ways to do this: #### Option A: Use the GUI Disk Utility (Easiest for Beginners) 1. Open the "Disks" application from your applications menu 2. Click on each disk on the left sidebar to view its details 3. Note down the following information for each drive: - Device path (e.g., `/dev/sda`, `/dev/nvme0n1`) - UUID (a long string like `96ebca52-2696-4e79-bbf9-69a596f3be2d`) - File system type (usually ext4, ntfs, or fat32) #### Option B: Use Terminal Commands If you prefer using the terminal: ```bash # List all block devices sudo lsblk -f # Get more detailed information sudo blkid ``` Write down the UUID, device name, and filesystem type for each drive you want to mount. ### Step 2: Create Mount Points Mount points are directories where your drives will be accessible. You need to create these directories: ```bash # Create mount points (adjust names as desired) sudo mkdir -p /mnt/drive1 /mnt/drive2 /mnt/drive3 ``` Choose meaningful names for your mount points that help you remember what's on each drive. ### Step 3: Backup Your Current fstab File The `/etc/fstab` file controls how drives are mounted at boot. Always backup this file before editing: ```bash sudo cp /etc/fstab /etc/fstab.backup ``` ### Step 4: Edit the fstab File Now you'll add entries for your drives: ```bash sudo nano /etc/fstab ``` Add a line for each drive using this format: ``` UUID=your-drive-uuid /mnt/your-mount-point filesystem-type mount-options 0 2 ``` Example: ``` # 2TB Storage Drive UUID=1c51b55f-c89a-417e-bcc3-eb5f29caa92c /mnt/storage2tb ext4 defaults 0 2 ``` Here's what each field means: - **UUID**: The unique identifier for your drive - **Mount point**: The directory where you want to access the drive - **Filesystem type**: Usually ext4 for Linux drives, ntfs for Windows drives - **Mount options**: "defaults" works for most situations - **Dump**: Set to 0 (backup utility flag, rarely used) - **Pass**: Set to 2 for non-system drives (controls fsck order) For external drives that may not always be connected, add `nofail` to the options: ``` UUID=abcd1234-5678-90ef /mnt/external ext4 defaults,nofail 0 2 ``` Save the file by pressing Ctrl+O, then Enter, then exit with Ctrl+X. ### Step 5: Test Your Configuration Test that your configuration works without rebooting: ```bash # Reload systemd to recognize the new fstab entries sudo systemctl daemon-reload # Try mounting all entries in fstab sudo mount -a ``` If there are no error messages, your configuration is correct. ### Step 6: Verify the Drives are Mounted Check that your drives are properly mounted: ```bash df -h ``` You should see all your drives listed with their mount points. ### Step 7: Set Appropriate Permissions (Optional) If you want to make the drives writable for your user: ```bash # Replace username with your username and /mnt/drivename with your mount point sudo chown -R username:username /mnt/drivename ``` ### Troubleshooting #### Drive Not Mounting If a drive doesn't mount with `mount -a`: 1. Check for syntax errors in fstab: ```bash sudo cat /etc/fstab ``` 2. Verify the UUID is correct: ```bash sudo blkid ``` 3. Verify the filesystem type: ```bash sudo lsblk -f ``` #### Restore Backup If Needed If you've made a mistake and can't boot properly: 1. Boot into recovery mode (hold Shift during boot) 2. Mount the filesystem as read-write: ```bash mount -o remount,rw / ``` 3. Restore your backup: ```bash cp /etc/fstab.backup /etc/fstab ``` ### Common Mount Options - **defaults**: Standard options (rw, suid, dev, exec, auto, nouser, async) - **noauto**: Don't mount at boot (must be mounted manually) - **nofail**: Don't report errors if the device doesn't exist - **ro**: Mount read-only - **rw**: Mount read-write - **user**: Allow non-root users to mount - **exec/noexec**: Allow/prevent execution of binaries on the filesystem ### Example fstab File ``` # /etc/fstab # UUID=96ebca52-2696-4e79-bbf9-69a596f3be2d /mnt/samsung500 ext4 defaults 0 2 UUID=1c51b55f-c89a-417e-bcc3-eb5f29caa92c /mnt/storage2tb ext4 defaults 0 2 UUID=510f0afc-1dae-4da5-969e-2b9f31c72498 /mnt/storage4tb ext4 defaults 0 2 UUID=ABCD-EF12 /mnt/usb-drive vfat defaults,nofail 0 2 ``` ### Congratulations! Your drives are now set up to mount automatically every time you boot your Ubuntu system. You can access your files through the mount points you created. ## System Specific Configuration This is a step-by-step summary of the exact process we followed to configure automatic mounting for the four drives on this specific Ubuntu 24.04 system: ### Drive Details - 500GB Samsung SSD 970 EVO Plus (`/dev/nvme0n1p1`, UUID: `96ebca52-2696-4e79-bbf9-69a596f3be2d`) - 2.0TB Seagate Hard Disk (`/dev/sda1`, UUID: `1c51b55f-c89a-417e-bcc3-eb5f29caa92c`) - 4.0TB Seagate Hard Disk (`/dev/sdb1`, UUID: `510f0afc-1dae-4da5-969e-2b9f31c72498`) ### Step-by-Step Instructions 1. **Backup the fstab file** ``` sudo cp /etc/fstab /etc/fstab.backup ``` 2. **Edit the fstab file** ``` sudo nano /etc/fstab ``` 3. **Add the following lines to the end of the file** ``` # 500GB Samsung SSD UUID=96ebca52-2696-4e79-bbf9-69a596f3be2d /mnt/samsung500 ext4 defaults 0 2 # 2.0TB Hard Drive UUID=1c51b55f-c89a-417e-bcc3-eb5f29caa92c /mnt/storage2tb ext4 defaults 0 2 # 4.0TB Hard Drive UUID=510f0afc-1dae-4da5-969e-2b9f31c72498 /mnt/storage4tb ext4 defaults 0 2 ``` 4. **Create the mount point directories** ``` sudo mkdir -p /mnt/samsung500 /mnt/storage2tb /mnt/storage4tb ``` 5. **Reload systemd configuration to recognize the changes** ``` systemctl daemon-reload ``` 6. **Mount all drives according to fstab** ``` sudo mount -a ``` 7. **Verify that all drives are properly mounted** ``` df -h ``` ### Confirmation The successful output from `df -h` showed: ``` /dev/nvme0n1p1 458G 28K 435G 1% /mnt/samsung500 /dev/sda1 1.8T 533G 1.2T 31% /mnt/storage2tb /dev/sdb1 3.6T 2.6M 3.4T 1% /mnt/storage4tb ``` This confirms that all three drives are mounted correctly with the expected space available. ### What This Accomplishes - All three drives will now automatically mount at the same locations when the system boots - The drives are mounted with standard read/write permissions - The system will check these filesystems for errors during boot (but after the root filesystem) ### If You Need to Make Changes Later To modify mount points or options: 1. Edit the fstab file again: `sudo nano /etc/fstab` 2. Make your changes 3. Run `sudo systemctl daemon-reload` 4. Test with `sudo mount -a` ### Recovery Option If anything goes wrong and the system won't boot properly after these changes: 1. Boot into recovery mode (hold Shift during boot) 2. Restore the backup: `cp /etc/fstab.backup /etc/fstab` 3. Reboot normally ### Plex Media Permissions For fresh installs, we need to set permissions for drives for plex: ``` # Make the storage4tb directory accessible to the bunker-admin group sudo chmod 770 /mnt/storage4tb # Restart Plex service sudo systemctl restart plexmediaserver # Test access again sudo -u plex ls -la /mnt/storage4tb/mediastack/media ```