Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • BIOS - RAID 1 и MSDOS формат на дисковете

    Имаме хардуер с BIOS. Твърдите дискове в машината са под 2ТВ и са във формат MSDOS. Ще изградим софтуерен RAID 1 масив, като системата ще може да се зарежда от двата диска. Ще представлява следното: (HDD) ╗ ╠════ (RAID) ════ (операционната система в един дял /) (HDD) ╝ Предимства: ● за по-слаби системи е добър избор ● добра бързина ● слабо натоварва системата Недостатък: ● прекалено "дървено е всичко" с тези твърдо зададени дялове

    01
    02

    Имаме 2 диска по 33GB и BIOS. Самата инсталация няма да я показвам, само ще уточня начина на разделяне на дисковете и RAID масива.

    1

    Ръчно разделяне на дисковете.

    2

    Просто натискаме Enter върху диска.

    3

    Създаавме празен дял.

    4

    По същия начин и втория диск.

    5
    6

    Върху свободния дял на първия диск натискаме Enter.

    7
    8

    Дефинираме цялото пространство за дяла. Всичко ще бъде в /, даже swap пространството.

    9
    10

    Натискаме Enter върху Use as: за да определим какъв ще бъде блока.

    11

    Ще го дефинираме за RAID масив.

    12

    Натискаме Enter върху Bootable flag:.

    13

    От този дял ще се зарежда, затова трябва да е Bootable flag: on.

    14

    По същия начин дефинираме и втория диск.

    15

    След като сме определили двата диска, изграждаме RAID масив.

    16

    Преди това записваме промените които направихме до тук.

    17

    Създаваме RAID масив.

    18

    Ще е RAID1.

    19

    Ще се състои от 2 диска.

    20

    Няма да имаме трети резервен диск за устойчивост. Затова тука цифрата ще е 0.

    21

    Избираме двата диска участващи в RAID масива.

    22

    Завършваме с дефинирането на масива.

    23

    Имаме един RAID масив. Да го оразмерим. За целта натискаме Enter върху него.

    24

    Да укажем за какво ще се използва. Просто натискаме Enter.

    25

    Ще ползваме файлова система Ext4.

    26

    Натискаме Enter.

    27

    Точката за монтиране ще е / (root)

    28

    Готови сме с определянето на масива.

    29

    Завършваме с настройката на дискове и масиви.

    30

    Предупреждава, че нямаме SWAP дял. Ще го създадем във вид на файл, затова няма да се връщаме да поправяме нищо.

    31

    Записваме това което сме сътворили и продължаваме с инсталацията на системата. ПРОДЪЛЖАВАМЕ ИНСТАЛАЦИЯТА. Минава доста време докато се стигне до следния екран:

    32

    Предлага да инсталираме GRUB.

    33

    Ще го инсталираме на първия диск. Инсталацията завършва и рестартираме системата. Зареждаме с определени недостатъци. ● нямаме SWAP дял ● не можем да заредим от втория диск. Да поправим проблема.

    Дефиниране на SWAP

    Нямаме дял за swap, затова ще го дефинираме по друг начин (като файл).

    free -h total used free shared buff/cache available Mem: 3.8Gi 306Mi 3.6Gi 644Ki 98Mi 3.5Gi Swap: 0B 0B 0B cat /proc/meminfo | grep Swap SwapCached: 0 kB SwapTotal: 0 kB SwapFree: 0 kB cat /proc/swaps /usr/sbin/swapon --show ### Няма нищо

    Да създадем SWAP файл.

    dd if=/dev/zero of=/swapfile bs=1MB count=4096 4096+0 records in 4096+0 records out 4096000000 bytes (4.1 GB, 3.8 GiB) copied, 7.88359 s, 520 MB/s

    if=/dev/zero - входен, специален файл, връща толкова 0, колкото изисква операцията за четене of=/swapfile - изходен файл за съхранение на SWAP. Обичайна практика е да се слага в основната папка. bs=1MB - размер на блока count=1024 - определя колко блока да се копират bs*count = размера на SWAP файла, в случая е 1M*4096=4096MB=4GB.

    Права върху SWAP-a

    Дефинираме root какви права ще има за четене и запис върху swap файла.

    chmod 600 /swapfile ls -l / | grep swapfile -rw-r--r-- 1 root root 4096000000 Jun 15 09:44 swapfile

    Дефиниране на SWAP в паметта на Linux

    Създадохме swap файл но трябва да го маркираме като swap пространство в паетта на Linux.

    /usr/sbin/mkswap /swapfile mkswap: /swapfile: insecure permissions 0644, fix with: chmod 0600 /swapfile Setting up swapspace version 1, size = 3.8 GiB (4095995904 bytes) no label, UUID=6bb3644a-6eb7-424a-a95a-9b0ca25caf59

    Да активираме SWAP-a.

    /usr/sbin/swapon /swapfile swapon: /swapfile: insecure permissions 0644, 0600 suggested.

    Да проверим какво създадохме.

    /usr/sbin/swapon --show NAME TYPE SIZE USED PRIO /swapfile file 3.8G 0B -2

    Имаме SWAP. Проблема е, че при рестарт на системата ще изчезне.

    Автоматично зареждане на SWAP-a

    nano /etc/fstab # # / was on /dev/md0 during installation UUID=40686998-53c3-4ab4-95f0-f42584e9aa61 / ext4 errors=remount-ro 0 1 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /swapfile swap swap defaults 0 0 /usr/sbin/reboot

    След рестарта да проверим:

    /usr/sbin/swapon --show NAME TYPE SIZE USED PRIO /swapfile file 3.8G 0B -2

    Всичко е наред.

    Зареждане от втория диск от RAID-a

    Както се видя по-горе дефинирахме GRUB да е само на първия диск. Ако се счупи същия и се наложи да стартираме от втория то няма да може, защото просто GRUB го няма там. За начало да проверим в /etc/fstab какви дялове зарежда системата.

    nano /etc/fstab UUID=40686998-53c3-4ab4-95f0-f42584e9aa61 / ext4 errors=remount-ro 0 1 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /swapfile swap swap defaults 0 0

    Имаме UUID=40686998-53c3-4ab4-95f0-f42584e9aa61 зареждащ главния дял и /swapfile за swap дяла. Запомнете тази част, на по-късен етап ще я поправим, ще добавим и втория диск. Да проверим това UUID на кого е:

    /usr/sbin/blkid | grep 406869 /dev/md0: UUID="40686998-53c3-4ab4-95f0-f42584e9aa61" BLOCK_SIZE="4096" TYPE="ext4"

    Значи зареждаме от RAID-a. До тук всичко е правилно. Да заредим GRUB на втория диск. За целта първо да го определим:

    ls /dev/disk/by-id/ ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 md-uuid-1f0b10e0:51abc55a:dbadcfbc:2c2a2521 ata-VMware_Virtual_SATA_Hard_Drive_00000000000000000001 wwn-0x5000c2908ae040de ata-VMware_Virtual_SATA_Hard_Drive_00000000000000000001-part1 wwn-0x5000c2908ae040de-part1 ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001 wwn-0x5000c290922081cf ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001-part1 wwn-0x5000c290922081cf-part1 md-name-debian:0

    В зелено е показан първия диск, където има инсталиран GRUB, а в червено е втория диск. Преди да продължим с инсталацията или трябва да оправим пътищата за достъп на root или да инсталираме sudo и да го ползваме. По лесния вариант е втория.

    apt install sudo -y nano /etc/sudoers # User privilege specification root ALL=(ALL:ALL) ALL cccp ALL=(ALL:ALL) ALL exit

    Готово, да се заемем с GRUB. Обновяваме INITRAMFS. В повечето случаи не е необходимо, но за всеки случай.

    sudo update-initramfs -u -k all [sudo] password for cccp: Pa$$w0rD update-initramfs: Generating /boot/initrd.img-6.1.0-21-amd64 update-initramfs: Generating /boot/initrd.img-6.1.0-18-amd64

    Инсталираме GRUB на втория диск. Това е ЗАДЪЛЖИТЕЛНО !!!

    sudo grub-install /dev/disk/by-id/ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001 Installing for i386-pc platform. Installation finished. No error reported.

    Инсталирахме GRUB в /dev/sdb. В случая използвахме ID на диска. Това се прави с цел когато разменяте местата на дисковете (примерно от SATA_0 на SATA_1) да не разменяте /dev/sda на /dev/sdb а един път записано като ata-VMware_Virtual_SATA_Hard_Drive_00000000000000000001 на което и SATA да се сложи винаги ще е ata-VMware_Virtual_SATA_Hard_Drive_00000000000000000001. На практика в /boot се създаде папка /boot/grub и в нея се преконфигурира файла grub.cfg Но това не е края. Трябва да се обнови GRUB. Това също не е необходимо, но да се види какво ще се получи.

    sudo update-grub Generating grub configuration file ... Found linux image: /boot/vmlinuz-6.1.0-21-amd64 Found initrd image: /boot/initrd.img-6.1.0-21-amd64 Found linux image: /boot/vmlinuz-6.1.0-18-amd64 Found initrd image: /boot/initrd.img-6.1.0-18-amd64 Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. done

    Казва, че не е добавен в GRUB зареждащата конфигурация. Това е така, защото ползвахме RAID масив. Бъдете сигурни обаче, че системата успешно ще зареди от двата диска. Можем да пробваме горното твърдение, като изтрием от виртуалната машина първия диск и системата ще зареди от втория. Системата разбира се зареди.

    Ремонт на счупен RAID

    Имитирахме, че първия диск се чупи. Време да го заменим. Намираме същия диск (същия размер) и го поставяме. Зареждаме от ВТОРИЯ диск. Системата се зарежда.

    lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 / sr0 11:0 1 382M 0 rom

    Диск /dev/sda не е дефиниран. Да проверим и RAID масива.

    cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[1] 34567168 blocks super 1.2 [2/1] [_U]

    В масива има един диск, при необходими два. Пръвия диск който върнахме в системата е неопределен затова е необходимо да се оразмери. Ще ползваме gdisk. В случая го нямаме, затова ще го инсталираме.

    sudo apt install gdisk -y

    Да проверим здравия диск как е оразмерен.

    sudo gdisk -l /dev/sdb ### Много надписи ..... Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. *************************************************************** Disk /dev/sdb: 69206016 sectors, 33.0 GiB Model: VMware Virtual S Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 719E57C9-0365-4443-8DA5-B44521528C59 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 69205982 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 69203967 33.0 GiB FD00 Linux RAID

    Диска е във формат MBR. Да копираме MBR дяловете на /dev/sdb върху /dev/sda

    sudo sfdisk -d /dev/sdb | sudo sfdisk /dev/sda Checking that no-one is using this disk right now ... OK Disk /dev/sda: 33 GiB, 35433480192 bytes, 69206016 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Created a new DOS disklabel with disk identifier 0x9cb3cb78. /dev/sda1: Created a new partition 1 of type 'Linux raid autodetect' and of size 33 GiB. /dev/sda2: Done. New situation: Disklabel type: dos Disk identifier: 0x9cb3cb78 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 69203967 69201920 33G fd Linux raid autodetect The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

    Да проверим:

    sudo gdisk -l /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 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. *************************************************************** Disk /dev/sda: 69206016 sectors, 33.0 GiB Model: VMware Virtual S Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): E232620F-D965-478A-882C-F938A216AE8F 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 69205982 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 69203967 33.0 GiB FD00 Linux RAID

    И още една проверка:

    sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk └─sda1 8:1 0 33G 0 part sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 / sr0 11:0 1 382M 0 rom

    Добавяне диска към масива

    Диска още не е в масива. Можем лесно да проверим:

    cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[1] 34567168 blocks super 1.2 [2/1] [_U] unused devices:

    Да го добавим:

    sudo mdadm /dev/md0 -a /dev/sda1 mdadm: added /dev/sda1 cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[2] sdb1[1] 34567168 blocks super 1.2 [2/1] [_U] [==========>..........] recovery = 54.9% (19004544/34567168) finish=1.2min speed=206107K/sec unused devices: <none>

    Изчакваме RAID масива да се поправи на 100% Проверяваме наново:

    cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[2] sdb1[1] 34567168 blocks super 1.2 [2/2] [UU]

    Имаме 2 от 2 диска в масива и то синхронизирани. Отново проверяваме разпределението на дяловете.

    sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk └─sda1 8:1 0 33G 0 part └─md0 9:0 0 33G 0 raid1 / sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 / sr0 11:0 1 382M 0 rom

    Двата диска са огледални. Това и трябваше да се получи. Остана да оправим bootloader⁠-а

    Поправяне на GRUB

    sudo grub-install /dev/disk/by-id/ata-VMware_Virtual_SATA_Hard_Drive_00000000000000000001 Installing for i386-pc platform. Installation finished. No error reported.

    Готово, вече системата може да зарежда от двата диска.