Ihar Hancharenka 5dff80e88e first
2023-03-27 16:52:17 +03:00

92 строки
3.6 KiB
Plaintext

https://github.com/ChrisTitusTech/ArchMatic/blob/master/preinstall.sh
# disk prep
sgdisk -Z ${DISK} # zap all on disk
sgdisk -a 2048 -o ${DISK} # new gpt disk 2048 alignment
# create partitions
sgdisk -n 1:0:+1000M ${DISK} # partition 1 (UEFI SYS), default start block, 512MB
sgdisk -n 2:0:0 ${DISK} # partition 2 (Root), default start, remaining
# set partition types
sgdisk -t 1:ef00 ${DISK}
sgdisk -t 2:8300 ${DISK}
# label partitions
sgdisk -c 1:"UEFISYS" ${DISK}
sgdisk -c 2:"ROOT" ${DISK}
https://github.com/manjaro/manjaro-tools-livecd
https://github.com/manjaro/manjaro-tools-livecd/tree/master/livecd-cli-installer/opt/livecd
manjaro-livecd-cli-installer
/opt/livecd/setup-0.9
autoprepare(){
...
# we assume a /dev/hdX format (or /dev/sdX)
if [[ "${GUIDPARAMETER}" == "yes" ]]; then
PART_ROOT="${DEVICE}5"
# GPT (GUID) is supported only by 'parted' or 'sgdisk'
printk off
DIALOG --infobox "Partitioning ${DEVICE}" 0 0
# clean partition table to avoid issues!
sgdisk --zap ${DEVICE} &>/dev/null
# clear all magic strings/signatures - mdadm, lvm, partition tables etc.
dd if=/dev/zero of=${DEVICE} bs=512 count=2048 &>/dev/null
wipefs -a ${DEVICE} &>/dev/null
# create fresh GPT
sgdisk --clear ${DEVICE} &>/dev/null
# create actual partitions
sgdisk --set-alignment="2048" --new=1:1M:+${GPT_BIOS_GRUB_PART_SIZE}M --typecode=1:EF02 --change-name=1:BIOS_GRUB ${DEVICE} > ${LOG}
sgdisk --set-alignment="2048" --new=2:+1M:+${UEFISYS_PART_SIZE}M --typecode=2:EF00 --change-name=2:UEFI_SYSTEM ${DEVICE} > ${LOG}
sgdisk --set-alignment="2048" --new=3:+1M:+${BOOT_PART_SIZE}M --typecode=3:8300 --attributes=3:set:2 --change-name=3:MANJARO_BOOT ${DEVICE} > ${LOG}
sgdisk --set-alignment="2048" --new=4:+1M:+${SWAP_PART_SIZE}M --typecode=4:8200 --change-name=4:MANJARO_SWAP ${DEVICE} > ${LOG}
sgdisk --set-alignment="2048" --new=5:+1M:+${ROOT_PART_SIZE}M --typecode=5:8300 --change-name=5:MANJARO_ROOT ${DEVICE} > ${LOG}
sgdisk --set-alignment="2048" --new=6:+1M:0 --typecode=6:8300 --change-name=6:MANJARO_HOME ${DEVICE} > ${LOG}
sgdisk --print ${DEVICE} > ${LOG}
else
...
fi
...
}
$sudo blkid -p -i -o value -s PTTYPE /dev/sda
gpt
$sudo blkid -p -i -o full /dev/sda
DEVNAME=/dev/sda
MINIMUM_IO_SIZE=4096
PHYSICAL_SECTOR_SIZE=4096
LOGICAL_SECTOR_SIZE=512
PTUUID=765a3f72-f679-42e6-976e-39a5fa108d73
PTTYPE=gpt
!!! So, we need a gpt, and EF02 (boot GRUB partition)
check_gpt(){
GUID_DETECTED=""
[[ "$(${_BLKID} -p -i -o value -s PTTYPE ${DISC})" == "gpt" ]] && GUID_DETECTED="1"
if [[ "${GUID_DETECTED}" == "" ]]; then
DIALOG --defaultno --yesno "Setup detected no GUID (gpt) partition table on ${DISC}.\n\nDo you want to convert the existing MBR table in ${DISC} to a GUID (gpt) partition table?\n\nNOTE:\nBIOS-GPT boot may not work in some Lenovo systems (irrespective of the bootloader used). " 0 0 || return 1
sgdisk --mbrtogpt ${DISC} > ${LOG} && GUID_DETECTED="1"
fi
if [[ "${GUID_DETECTED}" == "1" ]]; then
if [[ "${CHECK_UEFISYS_PART}" == "1" ]]; then
check_uefisyspart
fi
if [[ "${CHECK_BIOS_BOOT_GRUB}" == "1" ]]; then
if ! [[ "$(sgdisk -p ${DISC} | grep 'EF02')" ]]; then
DIALOG --msgbox "Setup detected no BIOS BOOT PARTITION in ${DISC}. Please create a >=1 MB BIOS Boot partition for grub-bios GPT support." 0 0
RUN_CGDISK="1"
fi
fi
fi
if [[ "${RUN_CGDISK}" == "1" ]]; then
DIALOG --msgbox "Now you'll be put into cgdisk where you can partition your hard drive.\nYou should make a swap partition and as many data partitions as you will need." 18 70
clear && cgdisk ${DISC}
fi
}