Created Testing a specific disk layout (markdown)
parent
e15a909fe7
commit
79fe539784
|
|
@ -0,0 +1,139 @@
|
|||
One of the current issues is disk layout and cache issues.
|
||||
In order to test this some what reliably, the following script can be run.
|
||||
|
||||
It will create two partitions:
|
||||
* /dev/sda1 -> fat32
|
||||
* /dev/sda2 -> Encrypted -> ext4
|
||||
|
||||
It will also install a base linux on this setup (including bootloader).
|
||||
Nothing will be configured, just the binaries put in place for testing the partitioner.
|
||||
|
||||
```python
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Need to define a output folder for the archiso:"
|
||||
echo "Example (build and run):"
|
||||
echo " ./test.sh ./archiso true"
|
||||
echo "Example (skip building and run ISO as given path):"
|
||||
echo " ./test.sh ./archiso"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO="https://github.com/Torxed/archinstall.git"
|
||||
ARCHISO_FOLDER=$1
|
||||
REBUILD=$2
|
||||
BRANCH="master"
|
||||
|
||||
if [ $REBUILD ]
|
||||
then
|
||||
echo "Making a clean build!"
|
||||
`rm -rf "${ARCHISO_FOLDER}" 2>/dev/null` || (
|
||||
echo "Could not delete protected folder:";
|
||||
echo "-> ${ARCHISO_FOLDER}";
|
||||
echo "Running as sudo.";
|
||||
sudo rm -rf "${ARCHISO_FOLDER}"
|
||||
)
|
||||
|
||||
mkdir -p "${ARCHISO_FOLDER}"
|
||||
cp -r /usr/share/archiso/configs/releng/* "${ARCHISO_FOLDER}/"
|
||||
|
||||
git clone "${REPO}" "${ARCHISO_FOLDER}/airootfs/root/archinstall-git"
|
||||
(cd "${ARCHISO_FOLDER}/airootfs/root/archinstall-git"; git checkout "${BRANCH}" )
|
||||
|
||||
echo "git" >> "${ARCHISO_FOLDER}/packages.x86_64"
|
||||
echo "python" >> "${ARCHISO_FOLDER}/packages.x86_64"
|
||||
echo "python-pip" >> "${ARCHISO_FOLDER}/packages.x86_64"
|
||||
echo "python-setuptools" >> "${ARCHISO_FOLDER}/packages.x86_64"
|
||||
|
||||
cat <<\EOF >> "${ARCHISO_FOLDER}/airootfs/root/.zprofile"
|
||||
if [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]]; then
|
||||
cd /root/archinstall-git
|
||||
pip uninstall archinstall -y >/dev/null 2>&1
|
||||
git pull
|
||||
python setup.py install >/dev/null 2>&1
|
||||
cd /root
|
||||
|
||||
RED='\033[0;31m'
|
||||
YEL='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
umount -R /mnt
|
||||
cryptsetup close /dev/mapper/luksloop
|
||||
|
||||
wipefs -a -f -i -q /dev/sda
|
||||
parted -s /dev/sda mklabel gpt
|
||||
parted -s /dev/sda mkpart primary fat32 1MiB 513MiB
|
||||
parted -s /dev/sda name 1 EFI
|
||||
parted -s /dev/sda set 1 boot on
|
||||
parted -s /dev/sda set 1 esp on
|
||||
parted -s /dev/sda mkpart primary 513MiB 100%
|
||||
|
||||
mkfs.fat -F32 /dev/sda1
|
||||
|
||||
echo -n "test" > /tmp/disk.pw
|
||||
|
||||
cryptsetup \
|
||||
--batch-mode \
|
||||
--verbose \
|
||||
--type luks2 \
|
||||
--pbkdf argon2i \
|
||||
--hash sha512 \
|
||||
--key-size 512 \
|
||||
--iter-time 10 \
|
||||
--key-file /tmp/disk.pw \
|
||||
--use-urandom \
|
||||
luksFormat /dev/sda2
|
||||
|
||||
cryptsetup open /dev/sda2 luksloop --key-file /tmp/disk.pw --type luks2
|
||||
mkfs.ext4 /dev/mapper/luksloop
|
||||
mount /dev/mapper/luksloop /mnt
|
||||
|
||||
mkdir -p /mnt/boot
|
||||
mount /dev/sda1 /mnt/boot
|
||||
|
||||
pacstrap /mnt base linux efibootmgr
|
||||
arch-chroot /mnt bootctl --no-variables --path=/boot install
|
||||
|
||||
lsblk -f -o+TYPE,SIZE
|
||||
|
||||
umount -R /mnt
|
||||
cryptsetup close /dev/mapper/luksloop
|
||||
|
||||
echo ""
|
||||
echo -e "${RED}Note:${NC} This is a release candidate! (Experimental release: v2.1.4)"
|
||||
echo -e "Do not bother Arch Linux support staff about issues in this specific release candidate!"
|
||||
echo -e "Instead, ${YEL}create an Issue ticket on the Upstream GithHub page for support:${NC}"
|
||||
echo -e " https://github.com/archlinux/archinstall/issues"
|
||||
echo ""
|
||||
echo "Run 'python -m archinstall' when you are ready to test (configure your network first if needed)!"
|
||||
fi
|
||||
EOF
|
||||
|
||||
( cd "${ARCHISO_FOLDER}/"; sudo mkarchiso -v -w work/ -o out/ ./; )
|
||||
fi
|
||||
|
||||
if [ ! -f "./test.qcow2" ];
|
||||
then
|
||||
qemu-img create -f qcow2 ./test.qcow2 15G
|
||||
fi
|
||||
|
||||
sudo qemu-system-x86_64 \
|
||||
-cpu host \
|
||||
-enable-kvm \
|
||||
-machine q35,accel=kvm \
|
||||
-device intel-iommu \
|
||||
-m 8192 \
|
||||
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF_CODE.fd \
|
||||
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF_VARS.fd \
|
||||
-device virtio-scsi-pci,bus=pcie.0,id=scsi0 \
|
||||
-device scsi-hd,drive=hdd0,bus=scsi0.0,id=scsi0.0,bootindex=2 \
|
||||
-drive file=./test.qcow2,if=none,format=qcow2,discard=unmap,aio=native,cache=none,id=hdd0 \
|
||||
-device virtio-scsi-pci,bus=pcie.0,id=scsi1 \
|
||||
-device scsi-cd,drive=cdrom0,bus=scsi1.0,bootindex=1 \
|
||||
-drive file=$(ls -t $ARCHISO_FOLDER/out/*.iso | head -n 1),media=cdrom,if=none,format=raw,cache=none,id=cdrom0
|
||||
```
|
||||
|
||||
This will run against latest `master` and have a fixed partition setup on every login/re-login to the ISO.
|
||||
This enables quick testing by hitting <kbd>Ctrl-D</kbd> in the shell of the ISO.
|
||||
Loading…
Reference in New Issue