know-how:master
Inhaltsverzeichnis
Anforderungen
- Das „master“ System dient Pannonia IT als Basis für diverse Virtualisierungen die mit „KVM“ durchgeführt werden und soll as simple as possible sein
- Virtualisierungshost für zB: fileserver / firewall / webserver / backup u.v.m.
Installation von Rescue System bei Hetzner für Root Server
- Achtung hier Debian 11 Scratchpad / kein UEFI sondern legacy bios
master setup base root@rescue ~ # gdisk /dev/sda GPT fdisk (gdisk) version 1.0.6 Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Warning: Partition table header claims that the size of partition table entries is 16843009 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries in memory. Command (? for help): ? b back up GPT data to a file c change a partition's name d delete a partition i show detailed information on a partition l list known partition types n add a new partition o create a new empty GUID partition table (GPT) p print the partition table q quit without saving changes r recovery and transformation options (experts only) s sort partitions t change a partition's type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this menu Command (? for help): n Partition number (1-128, default 1): First sector (34-3907029134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}: +150M Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): n Partition number (2-128, default 2): First sector (34-3907029134, default = 309248) or {+-}size{KMGTP}: Last sector (309248-3907029134, default = 3907029134) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): fd00 Changed type of partition to 'Linux RAID' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sda. The operation has completed successfully. ----- root@rescue ~ # gdisk /dev/sdb GPT fdisk (gdisk) version 1.0.6 Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Caution: invalid main GPT header, but valid backup; regenerating main header from backup! Warning: Invalid CRC on main header data; loaded backup partition table. Warning! One or more CRCs don't match. You should repair the disk! Main header: ERROR Backup header: OK Main partition table: OK Backup partition table: OK Partition table scan: MBR: not present BSD: not present APM: not present GPT: damaged Found invalid MBR and corrupt GPT. What do you want to do? (Using the GPT MAY permit recovery of GPT data.) 1 - Use current GPT 2 - Create blank GPT Your answer: 2 Command (? for help): n Partition number (1-128, default 1): First sector (34-3907029134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}: +150M Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): n Partition number (2-128, default 2): First sector (34-3907029134, default = 309248) or {+-}size{KMGTP}: Last sector (309248-3907029134, default = 3907029134) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): fd00 Changed type of partition to 'Linux RAID' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdb. The operation has completed successfully ---- create RAID1 # mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda2 /dev/sdb2 --- create physical volume device for lvm root@rescue ~ # pvcreate /dev/md0 Physical volume "/dev/md0" successfully created. ---- create volume group root@rescue ~ # vgcreate master /dev/md0 Volume group "master" successfully created ---- create logical volume for root filesystem root@rescue ~ # man lvcreate root@rescue ~ # lvcreate -L 35G -n root master Logical volume "root" created. --- create ext4 filesystem for root Filesystem root@rescue ~ # mkfs.ext4 /dev/mapper/master-root -L ROOT_FS mke2fs 1.46.2 (28-Feb-2021) Creating filesystem with 9175040 4k blocks and 2293760 inodes Filesystem UUID: 100ea202-f3c5-4f02-8b0a-d59596af5f00 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done -- mount ext4 filesystem on /mnt/tmp/ root@rescue ~ # mkdir /mnt/tmp root@rescue ~ # mount /dev/mapper/master-root /mnt/tmp/ ---- deboostrap a current debian system root@rescue /mnt/tmp # debootstrap bullseye ./ http://deb.debian.org/debian ---- chroot into new environment root@rescue /mnt/tmp # mount -t proc none proc/ root@rescue /mnt/tmp # mount -t sysfs none sys root@rescue /mnt/tmp # mount -o bind /dev dev/ root@rescue /mnt/tmp # chroot ./ /bin/bash --- install necessary packages mdadm / lvm2 for system to work root@rescue:/# apt-get install mdadm lvm2 vim openssh-server man htop --- erlaube temporär Root Login mit Passwort und setze ordentliches Passwort >20 Zeichen root@rescue:/# vim /etc/ssh/sshd_config root@rescue:/# passwd New password: Retype new password: passwd: password updated successfully root@rescue:/# grep -i PermitRoot /etc/ssh/sshd_config PermitRootLogin yes ---- --- grub2 installieren zum booten der maschine root@rescue:/# apt-get install grub2 root@master:/# grub-install /dev/sda Installing for i386-pc platform. grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible. grub-install: error: embedding is not possible, but this is required for RAID and LVM install. --- sda1 anpassen mach ma bios boot partition draus - ef02 root@rescue /mnt/tmp # gdisk /dev/sdb GPT fdisk (gdisk) version 1.0.6 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): ? b back up GPT data to a file c change a partition's name d delete a partition i show detailed information on a partition l list known partition types n add a new partition o create a new empty GUID partition table (GPT) p print the partition table q quit without saving changes r recovery and transformation options (experts only) s sort partitions t change a partition's type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this menu Command (? for help): t Partition number (1-2): 1 Current type is EF01 (MBR partition scheme) Hex code or GUID (L to show codes, Enter = EF01): ef02 Changed type of partition to 'BIOS boot partition' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdb. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully ... so muss es aussehen wenn von mbr / bios legacy gebootet wird root@rescue /mnt/tmp # chroot ./ /bin/bash root@master:/# grub-install /dev/sda Installing for i386-pc platform. Installation finished. No error reported. root@master:/# grub-install /dev/sdb Installing for i386-pc platform. Installation finished. No error reported --- raid1 infos vom hostsystem ins chroot root@master:/# /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf --- Kernel Installation apt-get install linux-image-amd64 --- Netzwerk konfigurieren damit die MAschine auch korrekte IP Infos bekommt beim booten e.g. /etc/default/grub .. GRUB_CMDLINE_LINUX="net.ifnames=0" ... update-grub2 ... -- Warning wegen fehlender Firmware sources (in dem Fall realtek Netzwerkkarte) anpassen non-free hinzufügen root@master:~# cat /etc/apt/sources.list deb http://deb.debian.org/debian bullseye main non-free deb http://security.debian.org/debian-security bullseye-security main non-free deb http://ftp.de.debian.org/debian bullseye-updates main non-free root@master:~# apt-get install firmware-realtek root@master:~# update-initramfs -k all -u --- root@master:/# cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) # Include files from /etc/network/interfaces.d: source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto eth0 iface eth0 inet static address IP netmask NETMASK gateway GATEWAY ----- fstab für root partition konfigurieren root@master:/# cat /etc/fstab # UNCONFIGURED FSTAB FOR BASE SYSTEM LABEL=ROOT_FS / ext4 errors=remount-ro 0 1 --- check ob ich bereits booten kann root@master /mnt # cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb2[1] sda2[0] 1953227840 blocks super 1.2 [2/2] [UU] [=====>...............] resync = 29.2% (571644672/1953227840) finish=157.0min speed=146638K/sec bitmap: 11/15 pages [44KB], 65536KB chunk unused devices: <none> reboot -- ja geht :)
Installation und Migration von "master" nach Rescue System bei Hetzner für Root Server
- keep it as simple and needed as possible :)
GPT Partitions / + MBR infos for grub2 root@rescue ~ # gdisk /dev/nvme0n1 GPT fdisk (gdisk) version 1.0.9 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries in memory. Command (? for help): n Partition number (1-128, default 1): First sector (34-1875384974, default = 2048) or {+-}size{KMGTP}: Last sector (2048-1875384974, default = 1875384319) or {+-}size{KMGTP}: +15M Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): ef02 Changed type of partition to 'BIOS boot partition' Command (? for help): n Partition number (2-128, default 2): First sector (34-1875384974, default = 32768) or {+-}size{KMGTP}: Last sector (32768-1875384974, default = 1875384319) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): fd00 Changed type of partition to 'Linux RAID' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/nvme0n1. The operation has completed successfully. root@rescue ~ # gdisk /dev/nvme1n1 GPT fdisk (gdisk) version 1.0.9 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries in memory. Command (? for help): p Disk /dev/nvme1n1: 1875385008 sectors, 894.3 GiB Model: SAMSUNG MZQLB960HAJR-00007 Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 243689F2-6345-4BE3-B0C6-D536022B86E7 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 1875384974 Partitions will be aligned on 2048-sector boundaries Total free space is 1875384941 sectors (894.3 GiB) Number Start (sector) End (sector) Size Code Name Command (? for help): n Partition number (1-128, default 1): First sector (34-1875384974, default = 2048) or {+-}size{KMGTP}: Last sector (2048-1875384974, default = 1875384319) or {+-}size{KMGTP}: +15M Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): ef02 Changed type of partition to 'BIOS boot partition' Command (? for help): n Partition number (2-128, default 2): First sector (34-1875384974, default = 32768) or {+-}size{KMGTP}: Last sector (32768-1875384974, default = 1875384319) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): fd00 Changed type of partition to 'Linux RAID' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/nvme1n1. The operation has completed successfully. root@rescue ~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 3.4G 1 loop nvme0n1 259:0 0 894.3G 0 disk ├─nvme0n1p1 259:4 0 15M 0 part └─nvme0n1p2 259:5 0 894.2G 0 part nvme1n1 259:1 0 894.3G 0 disk ├─nvme1n1p1 259:6 0 15M 0 part └─nvme1n1p2 259:7 0 894.2G 0 part ---- Software RAID1 root@rescue ~ # mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/nvme1n1p2 /dev/nvme0n1p2 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. root@rescue ~ # cat /proc/mdstat Personalities : [raid1] md0 : active raid1 nvme0n1p2[1] nvme1n1p2[0] 937543680 blocks super 1.2 [2/2] [UU] [>....................] resync = 1.0% (9927488/937543680) finish=75.4min speed=205019K/sec bitmap: 7/7 pages [28KB], 65536KB chunk unused devices: <none> ----- Physical Volume for LVM root@rescue ~ # pvcreate /dev/md0 Physical volume "/dev/md0" successfully created. ---- Volume Group consisting of /dev/md0 root@rescue ~ # vgcreate master /dev/md0 Volume group "master" successfully created --- Create root and var logical volumes root@rescue ~ # lvcreate -L 85G -n root master Logical volume "root" created. root@rescue ~ # lvcreate -L 50G -n var master Logical volume "var" created ----- Create Snapshot for root and var on other machine: root@master:~# lvcreate -L 20G -s -n root_snapshot_consistent /dev/master/root Logical volume "root_snapshot_consistent" created. root@master:~# lvs root_snapshot_consistent master swi-a-s--- 20.00g root 0.01 root@master:~# lvcreate -L 20G -s -n var_snapshot_consistent /dev/master/var Logical volume "var_snapshot_consistent" created. root@master:~# lvs | grep -i var var master owi-aos--- 50.00g var_snapshot_consistent master swi-a-s--- 20.00g var 0.01 --- Move Snapshot to new machine from the running old machine: root@master:~# dd if=/dev/master/root_snapshot_consistent bs=4M | ssh root@IP_SERVER_NEW "cat > /dev/master/root" root@master:~# dd if=/dev/master/var_snapshot_consistent bs=4M | ssh root@IP_SERVER_NEW "cat > /dev/master/var" session mit screen in den hintergrund d.h. eigene screen sitzung für beide befehle dd fragen wie es mit dem Kopieren aussieht root@master:~# kill -USR1 1746535 root@master:~# screen -r 1746289.pts-2.master .. 11431+0 records in 11430+0 records out 47940894720 bytes (48 GB, 45 GiB) copied, 562.821 s, 85.2 MB/s strg +A -> strg +D (detach) Remove snapshots when done: root@master:~# lvremove -q -f /dev/master/var_snapshot_consistent Logical volume "var_snapshot_consistent" successfully removed root@master:~# lvremove -q -f /dev/master/root_snapshot_consistent Logical volume "root_snapshot_consistent" successfully removed ---------- mounten auf dem rescue system root@rescue /mnt # mount /dev/master/root /mnt/root/ root@rescue /mnt # mount /dev/master/var /mnt/root/var/ root@rescue /mnt/root # mount -t sysfs none sys/ root@rescue /mnt/root # mount -o bind /dev dev/ root@rescue /mnt/root # mount -o bind /dev/pts/ dev/pts/ root@rescue /mnt/root # mount -o bind /run/ run/ root@rescue /mnt/root # mount -t proc none proc/ Netzwerk Konfiguration anpassen LVM Konfiguration anpassen (root@rescue:/etc/lvm/backup# vgscan - schreibt in /etc/lvm/backup/master ) MDADM erneut erstellen und schreiben (root@rescue:/# /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf) grub erneut installieren (root@rescue:/etc/lvm/backup# grub-install /dev/nvme0n1 / root@rescue:/etc/lvm/backup# grub-install /dev/nvme1n1 ) storage neu ( root@rescue:/# mkfs.btrfs -f -L STORAGE_FS -m dup /dev/master/storage) initramfs neu schreiben (root@rescue:/etc/lvm/backup# update-initramfs -k all -u) Passwort neu setzen (done) reboot und hü :)
Installation von USB Stick (dvd iso)
- Die folgende Installation wurde mit 2x M.2 Crucial 500GB (https://www.amazon.de/-/en/dp/B0B25LQQPC?ref=ppx_yo2ov_dt_b_product_details&th=1) und dieser Firewall Appliance (https://www.amazon.de/-/en/dp/B0B53MKZBX?psc=1&ref=ppx_yo2ov_dt_b_product_details , https://www.amazon.de/-/en/dp/B08C4WV6FT?psc=1&ref=ppx_yo2ov_dt_b_product_details) durchgeführt.
- Basissystem: Debian 12 Bookworm :)
preseed erstellen für die Automatisierung der Installationsfragen
know-how/master.txt · Zuletzt geändert: 2025/06/23 14:12 von cc