mirror of
https://github.com/suikan4github/kaiten-yaki.git
synced 2025-12-20 02:21:17 -03:00
created ubuntu_en.md
This commit is contained in:
parent
435527748b
commit
fe65f71182
1 changed files with 129 additions and 0 deletions
129
ubuntu_en.md
Normal file
129
ubuntu_en.md
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
# Ubuntu 20.04LTS installation into the LVM on the LUKS volume.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# ------------------ Create the partitions ------------------
|
||||||
|
# Promote to the root user
|
||||||
|
sudo -i
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
|
||||||
|
# Setup the passphrase of the crypt partition
|
||||||
|
read -sr PASSPHRASE
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
|
||||||
|
# ------------------ Parameter setting ------------------
|
||||||
|
# export to share with entire script
|
||||||
|
export PASSPHRASE
|
||||||
|
|
||||||
|
# Device and partition setting. If you wan to MAKE /dev/sda2 as linux root partition,
|
||||||
|
# set the DEV and ROOTPARTITION to /dev/sda and 2, respectively.
|
||||||
|
# EFI partition is usualy fixed as partition 1.
|
||||||
|
export DEV="/dev/sda"
|
||||||
|
export EFIPARTITION=1
|
||||||
|
export ROOTPARTITION=2
|
||||||
|
|
||||||
|
# Usually, following names are left unchanged unless existing volumes uses them.
|
||||||
|
export CRYPTPARTITION="luks_volume"
|
||||||
|
export VGNAME="vg1"
|
||||||
|
export LVSWAP="swap"
|
||||||
|
export LVROOT="ubuntu"
|
||||||
|
|
||||||
|
# ROOTSIZE is percentage to the free spage in the volume group.
|
||||||
|
# 50% mean, new partition will use 50% of the free space in the LVM volume group.
|
||||||
|
export SWAPSIZE="8G"
|
||||||
|
export ROOTSIZE="50%FREE"
|
||||||
|
|
||||||
|
|
||||||
|
# ------------------ Create the partitions ------------------
|
||||||
|
|
||||||
|
# Optional : Create partitions for in the physical disk.
|
||||||
|
# Assign 100MB and rest of disk to the EFI and LUKS partition, respectively.
|
||||||
|
sgdisk --zap-all "${DEV}"
|
||||||
|
sgdisk --new=${EFIPARTITION}:0:+100M --change-name=${EFIPARTITION}:"EFI System" --typecode=${EFIPARTITION}:ef00 "${DEV}"
|
||||||
|
sgdisk --new=${ROOTPARTITION}:0:0 --change-name=${ROOTPARTITION}:"Linux LUKS" --typecode=${ROOTPARTITION}:8309 "${DEV}"
|
||||||
|
sgdisk --print "${DEV}"
|
||||||
|
|
||||||
|
# Format the EFI partition by FAT32.
|
||||||
|
mkfs.vfat -F 32 -n EFI-SP "${DEV}${EFIPARTITION}"
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
# ------------------ Encrypt the volume to install and test ------------------
|
||||||
|
|
||||||
|
# Encrypt the partition to install the linux
|
||||||
|
printf %s "${PASSPHRASE}" | cryptsetup luksFormat --type=luks1 --key-file - --batch-mode "${DEV}${ROOTPARTITION}"
|
||||||
|
|
||||||
|
# Open the created crypt partition. To be sure, input the passphrase manually
|
||||||
|
cryptsetup open "${DEV}${ROOTPARTITION}" ${CRYPTPARTITION}
|
||||||
|
|
||||||
|
# Check whether successful open. If mapped, it is successful.
|
||||||
|
ls -l /dev/mapper
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
# ------------------ LVM configuration ------------------
|
||||||
|
|
||||||
|
# Create the Physical Volume and Volume Group.
|
||||||
|
pvcreate /dev/mapper/${CRYPTPARTITION}
|
||||||
|
vgcreate ${VGNAME} /dev/mapper/${CRYPTPARTITION}
|
||||||
|
|
||||||
|
# Optional : Create the SWAP Logical Volume on VG, if volume size is not 0.
|
||||||
|
if [ $SIZE != "0" -a $SIZE != "0G" ] ; then lvcreate -L SWAPSIZE -n ${LVSWAP} ${VGNAME} ; fi
|
||||||
|
|
||||||
|
# Create the ROOT Logical Volume on VG.
|
||||||
|
lvcreate -l ROOTSIZE -n ${LVROOT} ${VGNAME}
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
# ------------------ Run the ubiquity installer here ------------------
|
||||||
|
|
||||||
|
# ------------------ Configuratte the target GRUB during the Ubiquity runs ------------------
|
||||||
|
# Make target GRUB aware to the crypt partition
|
||||||
|
echo "GRUB_ENABLE_CRYPTODISK=y" >> /target/etc/default/grub
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
# ------------------ Wait the end of Ubiquity ------------------
|
||||||
|
# ------------------ Mount the targets ------------------
|
||||||
|
# Mount the volume and change root
|
||||||
|
# /target is created by the Ubiquity installer
|
||||||
|
mount /dev/mapper/${VGNAME}-${LVROOT} /target
|
||||||
|
for n in proc sys dev etc/resolv.conf; do mount --rbind "/$n" "/target/$n"; done
|
||||||
|
chroot /target /bin/bash
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
|
||||||
|
# ------------------ Add auto decryption to the target kernel -----------------
|
||||||
|
# Mount the rest of partitions by target /etc/fstab
|
||||||
|
mount -a
|
||||||
|
|
||||||
|
# Set up the kernel hook of encryption
|
||||||
|
apt install -y cryptsetup-initramfs
|
||||||
|
echo "KEYFILE_PATTERN=/etc/luks/*.keyfile" >> /etc/cryptsetup-initramfs/conf-hook
|
||||||
|
echo "UMASK=0077" >> /etc/initramfs-tools/initramfs.conf
|
||||||
|
|
||||||
|
# Prepare the key file for auto decryption
|
||||||
|
mkdir /etc/luks
|
||||||
|
dd if=/dev/urandom of=/etc/luks/boot_os.keyfile bs=4096 count=1
|
||||||
|
chmod u=rx,go-rwx /etc/luks
|
||||||
|
chmod u=r,go-rwx /etc/luks/boot_os.keyfile
|
||||||
|
|
||||||
|
# Make the keyfile
|
||||||
|
printf %s "${PASSPHRASE}" | cryptsetup luksAddKey -d - "${DEV}${ROOTPARTITION}" /etc/luks/boot_os.keyfile
|
||||||
|
|
||||||
|
# Add the LUKS partition to /etc/crypttab to decrypt automatically
|
||||||
|
echo "${CRYPTPARTITION} UUID=$(blkid -s UUID -o value ${DEV}${ROOTPARTITION}) /etc/luks/boot_os.keyfile luks,discard" >> /etc/crypttab
|
||||||
|
|
||||||
|
# Finally, update the ramfs initial image with the key file.
|
||||||
|
update-initramfs -uk all
|
||||||
|
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
# ------------------ Finishing installation -----------------
|
||||||
|
exit
|
||||||
|
reboot
|
||||||
|
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue