67 lines
2.0 KiB
Bash
Executable File
67 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Variables (edit these as needed)
|
|
ARRAY_NAME="md0"
|
|
MOUNT_POINT="/mnt/md0"
|
|
MDADM_CONF="/etc/mdadm/mdadm.conf"
|
|
|
|
# Colors
|
|
RED="\e[31m"
|
|
GREEN="\e[32m"
|
|
YELLOW="\e[33m"
|
|
MAGENTA="\e[35m"
|
|
CYAN="\e[36m"
|
|
BOLD="\e[1m"
|
|
NC="\e[0m"
|
|
|
|
echo "${CYAN}${BOLD}=== RAID Array Setup Script ===${NC}"
|
|
|
|
if ! sudo mdadm --help >/dev/null 2>&1; then
|
|
echo "${YELLOW}[+]${NC} Installing mdadm package..."
|
|
sudo apt install mdadm -y
|
|
echo "${GREEN}[✓]${NC} mdadm installed successfully"
|
|
else
|
|
echo "${GREEN}[✓]${NC} mdadm is already installed"
|
|
fi
|
|
|
|
# Check if array is already assembled
|
|
if [ "/dev/${ARRAY_NAME}" ]; then
|
|
echo "${GREEN}[✓]${NC} Array /dev/${ARRAY_NAME} exists."
|
|
sudo mdadm --detail "/dev/${ARRAY_NAME}"
|
|
cat /proc/mdstat
|
|
|
|
# Check if array is degraded
|
|
if sudo mdadm --detail "/dev/${ARRAY_NAME}" | grep -q "degraded"; then
|
|
echo "${RED}[!] WARNING:${NC} Array is degraded! Check which drives need to be re-added."
|
|
echo "${YELLOW}[i]${NC} You may need to run: ${CYAN}sudo mdadm --manage /dev/${ARRAY_NAME} --re-add <missing_drive>${NC}"
|
|
fi
|
|
else
|
|
echo "${YELLOW}[+]${NC} Assembling RAID array..."
|
|
sudo mdadm --assemble --scan
|
|
fi
|
|
|
|
# Optionally update mdadm.conf
|
|
if ! grep -q "/dev/${ARRAY_NAME}" "$MDADM_CONF"; then
|
|
echo "${YELLOW}[+]${NC} Updating $MDADM_CONF..."
|
|
sudo mdadm --detail --scan | sudo tee -a "$MDADM_CONF"
|
|
fi
|
|
|
|
# Mount the array
|
|
if [ ! -d "$MOUNT_POINT" ]; then
|
|
sudo mkdir -p "$MOUNT_POINT"
|
|
echo "${GREEN}[✓]${NC} Mount point created"
|
|
fi
|
|
|
|
if ! mountpoint -q "$MOUNT_POINT"; then
|
|
echo "${YELLOW}[+]${NC} Mounting /dev/${ARRAY_NAME} to $MOUNT_POINT..."
|
|
sudo mount "/dev/${ARRAY_NAME}" "$MOUNT_POINT"
|
|
echo "${GREEN}[✓]${NC} Array mounted successfully at $MOUNT_POINT"
|
|
else
|
|
echo "${GREEN}[✓]${NC} Array is already mounted at $MOUNT_POINT"
|
|
fi
|
|
|
|
echo "${CYAN}${BOLD}=== Setup Complete ===${NC}"
|
|
echo "${CYAN}[i]${NC} Array device: ${CYAN}/dev/${ARRAY_NAME}${NC}"
|
|
echo "${CYAN}[i]${NC} Mount point: ${CYAN}$MOUNT_POINT${NC}"
|
|
|