software:linux_server_iso:installer:api:disk_prepare.sh
disk_prepare.sh
- disk_prepare.sh
#!/bin/bash # Финальный эталонный скрипт разметки (api/disk_prepare.sh) cd "$(dirname "$0")" CONFIG_FILE="install_config.txt" LOG_FILE="/tmp/install.log" log_msg() { echo "$1" >> "$LOG_FILE"; echo "$1"; } # 1. Сбрасываем лог дляget_log.php echo "[PROGRESS] 0" > "$LOG_FILE" echo "[INFO] Инициализация разметки дисковых массивов..." >> "$LOG_FILE" if [ ! -f "$CONFIG_FILE" ]; then log_msg "[ERROR] Конфигурация install_config.txt не найдена!" exit 1 fi # 2. Чтение всех переменных в память и экспорт для дочерних процессов set -a source "$CONFIG_FILE" set +a # 3. Безопасное уничтожение файла конфигурации на диске /usr/bin/shred -u "$CONFIG_FILE" # 4. Начало разметки дисков echo "[PROGRESS] 10" > "$LOG_FILE" echo "[INFO] Очистка старых таблиц разделов..." >> "$LOG_FILE" IFS=' ' read -r -a DISKS_ARRAY <<< "$SELECTED_DISKS" TARGET_DISKS=$(printf " /dev/%s" "${DISKS_ARRAY[@]}") # 5. Стираем старые сигнатуры ФС for disk in "${DISKS_ARRAY[@]}"; do /usr/bin/wipefs -a "/dev/$disk" >> "$LOG_FILE" 2>&1 done echo "[PROGRESS] 25" > "$LOG_FILE" echo "[INFO] Создание файловой системы Btrfs..." >> "$LOG_FILE" # 6. Форматирование в Btrfs (RAID-1 или Single) if [ "$DISK_MODE" == "raid1" ]; then /usr/bin/mkfs.btrfs -f -d raid1 -m raid1 $TARGET_DISKS >> "$LOG_FILE" 2>&1 else /usr/bin/mkfs.btrfs -f $TARGET_DISKS >> "$LOG_FILE" 2>&1 fi echo "[PROGRESS] 40" > "$LOG_FILE" echo "[INFO] Нарезка системных подтомов @ и @home..." >> "$LOG_FILE" # 7. Монтирование и создание подтомов FIRST_DISK="/dev/${DISKS_ARRAY[0]}" /usr/bin/mount "$FIRST_DISK" /mnt /usr/bin/btrfs subvolume create /mnt/@ /usr/bin/btrfs subvolume create /mnt/@home /usr/bin/umount /mnt # 8. Передача эстафеты скрипту установки ядра Arch Linux echo "[PROGRESS] 50" > "$LOG_FILE" echo "[INFO] Разметка дисков успешно завершена. Запуск pacstrap..." >> "$LOG_FILE" sudo -E ./system_install.sh >> "$LOG_FILE" 2>&1
Только авторизованные участники могут оставлять комментарии.
software/linux_server_iso/installer/api/disk_prepare.sh.txt · Последнее изменение: — 127.0.0.1
