зеркало из
				https://github.com/iharh/notes.git
				synced 2025-11-04 07:36:08 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			92 строки
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
						|
}
 | 
						|
 |