# /boot on RAID1

## Setup KVM

{% hint style="info" %}
Все действия происходят в **QUME/KVM**. В системе должно быть смонтирована 2 диска до начала установки
{% endhint %}

Рассмотрим шаги про добавление 2-го диска.

На последнем шаге обязательно ставим галочку:

{% hint style="info" %}
Customize configuration before install
{% endhint %}

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VRAhNnqaJdqsYD-iT%2F-M8VRErStlh5pNyUWvR7%2Fkvm_r1.png?alt=media\&token=6118de58-68e4-4ce1-ae03-07550bdfd445)

в следующем шаге в **Add Hardware** добавляем второй диск:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VRNGAQ0OMVnd8p34l%2F-M8VS3yMdyhkYEaUQxn3%2Fkvm_2.png?alt=media\&token=c949e29a-aabb-4a2f-8285-90a68918891c)

только после этого запускаем установку.&#x20;

## Установка Ubuntu 18.04

Рассмотрим часть про создание разделов:

![выбираем Manual](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VSbsILJO-kf00bD5y%2F-M8VSrW_qAarDa90lx8j%2Finstall_ubuntu_1.png?alt=media\&token=9c3af9be-80e9-4818-a59a-1f453c8f75f6)

Далее создаем на обеих дисках разметку без указания файловой системы:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VdadijxwBNLWeLLkY%2Finstall_ubuntu_2.png?alt=media\&token=52cd7fae-a511-4119-b492-0ae4854649f8)

Делаем разбивку каждого диска на 2-е части (1Gb и остаток от диска), в Вашем случае размеры могут быть другими.

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VeLvA9quAiZ541vvB%2Fin_u_3.png?alt=media\&token=c6099629-ee16-4695-a2b3-aedd096c679d)

![1G](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VeCK3g_ZWrlcNvFtR%2Fin_u_4.png?alt=media\&token=38e1b381-8289-480a-8e1e-a275d10da527)

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VeJ90JsQkTgoGWSNe%2Fin_u_5.png?alt=media\&token=4cdc892e-fe44-452f-b8c4-b64385842e4f)

Указав пустое поле **Size**, будет задействован весь оставшийся размер диска.

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VeS2f8kiDxkUolCJT%2Fin_u_6.png?alt=media\&token=95f3dbff-474c-47b2-a6a3-bc5b4160c8d2)

в итоге у нас получится:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VenUv2kDkJIG4lyQh%2Fin_u_7.png?alt=media\&token=9820d41d-6c77-49bc-92f9-234b908a94ca)

Приводим второй диск к такому же состоянию:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8Vex3NNlYk6jhmaqpm%2Fin_u_8.png?alt=media\&token=d3c2c7ac-10bc-401a-906d-ec031ada6643)

{% hint style="info" %}
У вас в **USED DEVICES** появился **bios\_grub**, оставляем его нетронутым, в дальнейшем (уже после установки системы) мы создадим на втором диске раздел под **GRUB**
{% endhint %}

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8VfjY1GUU3Pz-If_tl%2Fin_u_9.png?alt=media\&token=3e6ff1e4-bb5e-499d-bf53-cc9a0032e0b6)

Теперь мы можем создать **RAID1** - 2 штука:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VUQJor2_TaEkKOB_Z%2F-M8Vfyzpblv93Y_FK175%2Fin_u_10.png?alt=media\&token=d75f8610-5844-4fe0-a658-60320f191d80)

Выбираем **partition** одинакового размера:

![Создание "первого" RAID1](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8VgMnxbfxGNCwM5r1w%2Fin_u_11.png?alt=media\&token=d254f74c-397a-4b9e-a1a4-24557f78b6b5)

![Создание "второго" RAID1](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8Vhzi-Vw53AaEkcGWd%2Fin_u_12.png?alt=media\&token=496908e6-175f-4b92-859a-68550909b57d)

В итоге у нас должно получится в **AVAILABLE DEVICES** два устройства:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8ViSUDPB23ngDYVFIB%2Fin_u_13.png?alt=media\&token=e653f611-827b-47e7-a4aa-58f157959556)

Приступаем к созданию **partition** на устройствах **md0**  и  **md1**:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8ViidZxcsvzTHxy5NV%2Fin_u_14.png?alt=media\&token=f891d6e4-0997-4d8a-b0b7-1b4d61425c49)

В моем случае **md0** (он меньшего размера) идет под **/boot:**

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8Vj2vcUvFBDLFbLxVS%2Fin_u_15.png?alt=media\&token=49dd9690-2782-4456-b995-141f949783d7)

А **md1** идет под корень системы:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8VjJD0sT7hOzhVzwtG%2Fin_u_17.png?alt=media\&token=d941d2ca-ff79-4d96-a4ac-1f04a378a6d6)

В итоге у нас должна получится такая разметка:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vg1R9dFFNA4UylfXX%2F-M8VjZLj7GJmj_OYkF0t%2Fin_u_19.png?alt=media\&token=a3c591ec-eeb3-46e6-ad81-c19d9071dc8a)

Далее **Done** и в следующем окне **Continue :**

{% hint style="danger" %}
Вся информация будет удалена, диски будут отформатированы
{% endhint %}

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8VqY9NB_Li2JZrJArT%2F-M8VqincCQahzjMPRcSx%2Fin_u_20.png?alt=media\&token=88abcc07-9de1-4f23-948d-0a5e55a85e34)

Далее следуем по меню чтобы завершить установку системы:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vqvwh8jyGmPJ6oQSd%2F-M8VrOLB7G_N7UqJJx1F%2Fin_u_21.png?alt=media\&token=a474c83b-f40c-4cd2-a6e2-22238581cd2a)

**Reboot**

## Install GRUB

{% hint style="info" %}
все последующие действия в системы выполняются от **root**
{% endhint %}

Смотрим информацию по дискам:

{% tabs %}
{% tab title="Command" %}

```bash
lsblk
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0         7:0    0 89.1M  1 loop  /snap/core/8268
sr0          11:0    1 1024M  0 rom   
vda         252:0    0   15G  0 disk  
├─vda1      252:1    0    1M  0 part  
├─vda2      252:2    0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vda3      252:3    0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
vdb         252:16   0   15G  0 disk  
├─vdb1      252:17   0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vdb2      252:18   0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
```

{% endtab %}
{% endtabs %}

В **output** интересуют имена дисков (**vda** и **vdb**), далее сам процес установки **grub:**

{% tabs %}
{% tab title="Command" %}

```bash
grub-install /dev/vda
```

{% endtab %}

{% tab title="Output" %}

```bash
root@test:~# grub-install /dev/vda
Installing for i386-pc platform.
Installation finished. No error reported.
root@test:~# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
grub-install /dev/vdb
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# grub-install /dev/vdb
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.
root@test:~# 
```

{% endtab %}
{% endtabs %}

Ошибка при выполнении **grub-install** на **vdb** ожидаемая, так как там нету раздела по него.

Создаем раздел:

{% tabs %}
{% tab title="Command" %}

```
parted /dev/vdb set 1 bios_grub on
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# parted /dev/vdb set 1 bios_grub on
Information: You may need to update /etc/fstab.

root@test:~# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
parted /dev/vdb print
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# parted /dev/vdb print                                        
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 16.1GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  1075MB  1074MB                     bios_grub
 2      1075MB  16.1GB  15.0GB

root@test:~# 
```

{% endtab %}
{% endtabs %}

Все прошло успешно, повторяем попытку **grub-install:**

{% tabs %}
{% tab title="Command" %}

```
grub-install /dev/vdb
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# grub-install /dev/vdb
Installing for i386-pc platform.
Installation finished. No error reported.
root@test:~# 
```

{% endtab %}
{% endtabs %}

Мы получили систему которая может грузиться с любого из **/boot** в случае выхода какого то из дисков. Далее мы протестируем как это работает и возможные применения такой схемы на практике.

## Тесты

### Переключение на загрузку со второго диска

Проверяем что с рейдами все **ОК!**

{% tabs %}
{% tab title="Command" %}

```
cat /proc/mdstat
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vdb1[1] vda2[0]
      1046528 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 vdb2[1] vda3[0]
      14667776 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>
root@test:~# 
```

{% endtab %}
{% endtabs %}

\[UU] - нам говорит о том что рейдах участвует по два диска, в нашем случае **partition**.

![Система грузится с VirtIO Disk 1](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8Vz5EsvlinyVMnAlKb%2F-M8W0RTzqUyg2jN2u-Do%2Ftest_1.png?alt=media\&token=93abad61-d675-4aa2-b2fb-29b3c6e79efa)

Выключаем систему, меняем загрузочный диск:

{% tabs %}
{% tab title="Command" %}

```bash
shutdown now
```

{% endtab %}
{% endtabs %}

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8W3AmQPIytada-9HYH%2F-M8W3JCTSIkPccBocCy-%2Ftest_2.png?alt=media\&token=d65c84f5-703a-4d89-8db1-a1dbe2b1cb86)

Запускаем систему. Система загрузилась с **VirtIO Disk 2**.&#x20;

**VirtIO Disk 1** мы можем безболезненно отключить от системы, и система у нас останется в рабочем состоянии.

### Второй диск вышел из строя

Представим ситуацию что какой-то из дисков, в нашем случае будет **VirtlO Disk2**, вышел из строя. Для имитации поломки, мы его удалим из системы.

До начала эксперимента проверяем что у нас все ок, и создадим в папке **root** файл, чтоб проверить синхронизацию с новым диском при отключении **VirtlO Disk1** :grin: .&#x20;

*P.S. Да у нас авария за аварией!*

{% tabs %}
{% tab title="Command" %}

```
cat /proc/mdstat
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vdb1[1] vda2[0]
      1046528 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 vdb2[1] vda3[0]
      14667776 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>
root@test:~# 

```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
cd && echo text in file >> test.file && cat test.file && ll 
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# cd && echo text in file >> test.file && cat test.file && ll
text in file
total 28
drwx------  3 root root 4096 May 29 15:58 ./
drwxr-xr-x 24 root root 4096 May 29 13:39 ../
-rw-------  1 root root  408 May 29 15:32 .bash_history
-rw-r--r--  1 root root 3106 Apr  9  2018 .bashrc
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
drwx------  2 root root 4096 May 29 14:41 .ssh/
-rw-r--r--  1 root root   13 May 29 15:58 test.file
root@test:~# 
```

{% endtab %}
{% endtabs %}

Выключаем машину, удаляем диск из системы, а загрузочным ставим **VirtlO** **Disk1**

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WA8alSKvZWSUFCK1w%2F-M8WAUTnLL0YuZ7B_PtK%2Ftest_3.png?alt=media\&token=e3468933-a1c7-4bd7-b592-0f296a531120)

![Удаляем его из системы -> Remove](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WA8alSKvZWSUFCK1w%2F-M8WB57tmzDE7oy_Hqdh%2Ftest_4.png?alt=media\&token=26caac3d-3441-4ab8-8709-2b1295acfe49)

В системе остался один диск:

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WA8alSKvZWSUFCK1w%2F-M8WBciQbHgYAeEz4JuG%2Ftest_8.png?alt=media\&token=cc0f5e5c-b510-4de7-bdce-e635f81a3ba4)

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WA8alSKvZWSUFCK1w%2F-M8WBUNm5lyOmUL-UVMx%2Ftest_6.png?alt=media\&token=65e91133-c92e-4687-b23d-0e11b256e27c)

Запускаем систему и проверяем состояние дисков, рейдов, файлов

{% tabs %}
{% tab title="Command" %}

```
lsblk
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0         7:0    0 89.1M  1 loop  /snap/core/8268
sr0          11:0    1 1024M  0 rom   
vda         252:0    0   15G  0 disk  
├─vda1      252:1    0    1M  0 part  
├─vda2      252:2    0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vda3      252:3    0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
cat /proc/mdstat
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vda2[0]
      1046528 blocks super 1.2 [2/1] [U_]
      
md1 : active raid1 vda3[0]
      14667776 blocks super 1.2 [2/1] [U_]
      
unused devices: <none>
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

\[U\_] - у нас в **md0/md1** не хватает по одному диску.

{% tabs %}
{% tab title="Command" %}

```
cd && cat test.file && ll
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# cd && cat test.file && ll
text in file
total 28
drwx------  3 root root 4096 May 29 15:58 ./
drwxr-xr-x 24 root root 4096 May 29 13:39 ../
-rw-------  1 root root  871 May 29 16:03 .bash_history
-rw-r--r--  1 root root 3106 Apr  9  2018 .bashrc
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
drwx------  2 root root 4096 May 29 14:41 .ssh/
-rw-r--r--  1 root root   13 May 29 15:58 test.file
root@test:~# 
```

{% endtab %}
{% endtabs %}

Но система продолжает быть в рабочем состоянии.

### Восстанавливаемся:

Создаем чистый не размеченный диск, подключаем его к системе, такого же размера как оставшийся диск в системе, предварительно выключив систему.

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WDNRMLAKFbaneMHe1%2F-M8WFQSphjeC3WMWnPU9%2Ftest_9.png?alt=media\&token=f1e7118f-ec72-4bfc-af03-10683855150c)

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WDNRMLAKFbaneMHe1%2F-M8WFW1ghhfXhE4-ct_t%2Ftest_10.png?alt=media\&token=ddea83e6-ada3-4276-b775-b35b2763dddf)

Запускаем систему, проверяем диски, рейд

{% tabs %}
{% tab title="Command" %}

```
lsblk
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0         7:0    0 89.1M  1 loop  /snap/core/8268
sr0          11:0    1 1024M  0 rom   
vda         252:0    0   15G  0 disk  
├─vda1      252:1    0    1M  0 part  
├─vda2      252:2    0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vda3      252:3    0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
vdb         252:16   0   15G  0 disk  
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
cat /proc/mdstat
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vda2[0]
      1046528 blocks super 1.2 [2/1] [U_]
      
md1 : active raid1 vda3[0]
      14667776 blocks super 1.2 [2/1] [U_]
      
unused devices: <none>
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

Размечаем диск **vdb** по **partition** как у **vda,** для более корректного отображения в дереве, разметку делаем в том же порядке:

{% hint style="info" %}
более детальную информацию по команде **fdisk** можно посмотреть в **man fdisk**
{% endhint %}

{% tabs %}
{% tab title="Command" %}

```
fdisk /dev/vdb
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9bc6d9da.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-31457279, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-31457279, default 31457279): +1M

Created a new partition 1 of type 'Linux' and of size 1 MiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
First sector (4096-31457279, default 4096): 
Last sector, +sectors or +size{K,M,G,T,P} (4096-31457279, default 31457279): +1G

Created a new partition 2 of type 'Linux' and of size 1 GiB.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (3,4, default 3): 
First sector (2101248-31457279, default 2101248): 
Last sector, +sectors or +size{K,M,G,T,P} (2101248-31457279, default 31457279): 

Created a new partition 3 of type 'Linux' and of size 14 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

смотрим что у нас получилось по дискам:

{% tabs %}
{% tab title="Command" %}

```
lsblk
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0         7:0    0 89.1M  1 loop  /snap/core/8268
sr0          11:0    1 1024M  0 rom   
vda         252:0    0   15G  0 disk  
├─vda1      252:1    0    1M  0 part  
├─vda2      252:2    0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vda3      252:3    0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
vdb         252:16   0   15G  0 disk  
├─vdb1      252:17   0    1M  0 part  
├─vdb2      252:18   0    1G  0 part  
└─vdb3      252:19   0   14G  0 part  
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

Теперь можем восстановить "первый" **RAID1 (md0)**:

{% tabs %}
{% tab title="Command" %}

```
mdadm /dev/md0 --add /dev/vdb2
```

{% endtab %}
{% endtabs %}

К сожалению вывода у команды нет, но если запустить в отдельном окне:

{% tabs %}
{% tab title="Command" %}

```
watch cat /proc/mdstat
```

{% endtab %}
{% endtabs %}

можно увидеть как идет восстановление **md0** :

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WH-UMk-MAcsDRkArV%2F-M8WJgXvj-6dBsjs0FFU%2Ftest_11.png?alt=media\&token=ea7a61d2-2248-4876-8443-5800d74320f4)

Восстанавливаем "второй" **RAID1 (md1):**

{% tabs %}
{% tab title="Command" %}

```
mdadm /dev/md1 --add /dev/vdb3
```

{% endtab %}
{% endtabs %}

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WH-UMk-MAcsDRkArV%2F-M8WLKYymT2RlRPIzSsR%2Ftest_12.png?alt=media\&token=1d10f847-d8de-473a-adc0-8db8cece90ac)

Дожидаемся конца восстановления.

Проверяем состояние:

{% tabs %}
{% tab title="Command" %}

```
cat /proc/mdstat
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vdb2[2] vda2[0]
      1046528 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 vdb3[2] vda3[0]
      14667776 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
lsblk
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0         7:0    0 89.1M  1 loop  /snap/core/8268
sr0          11:0    1 1024M  0 rom   
vda         252:0    0   15G  0 disk  
├─vda1      252:1    0    1M  0 part  
├─vda2      252:2    0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vda3      252:3    0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
vdb         252:16   0   15G  0 disk  
├─vdb1      252:17   0    1M  0 part  
├─vdb2      252:18   0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vdb3      252:19   0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
cd && cat test.file && ll
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# cd && cat test.file && ll
text in file
total 28
drwx------  3 root root 4096 May 29 15:58 ./
drwxr-xr-x 24 root root 4096 May 29 13:39 ../
-rw-------  1 root root  959 May 29 16:21 .bash_history
-rw-r--r--  1 root root 3106 Apr  9  2018 .bashrc
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
drwx------  2 root root 4096 May 29 14:41 .ssh/
-rw-r--r--  1 root root   13 May 29 15:58 test.file
root@test:~# 
```

{% endtab %}
{% endtabs %}

**RAID1(md0/md1)** в порядке, мы обратно вернули разметку дискам, файлы на месте, с теми же данными что были созданы на отключенном (удаленном) диске.&#x20;

Устанавливаем **grub** на новый диск и пробуем с него запустить систему.

{% tabs %}
{% tab title="Command" %}

```
grub-install /dev/vdb
```

{% endtab %}

{% tab title="Output" %}

```
root@test:~# grub-install /dev/vdb
Installing for i386-pc platform.
Installation finished. No error reported.
root@test:~# 
```

{% endtab %}
{% endtabs %}

Выключаем систему, переключаем диск для загрузки

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WH-UMk-MAcsDRkArV%2F-M8WPa1iqH9_C2u9L95y%2Ftest_15.png?alt=media\&token=276f2d11-574f-4dcd-8f17-5f893daa4bcc)

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WH-UMk-MAcsDRkArV%2F-M8WPdY3bpMGkjQyp3lV%2Ftest_17.png?alt=media\&token=593a17f5-456e-4d1c-98ea-e00da7c6a55c)

Запускаем систему, система загрузилась с **VirtIO Disc 2**.

### Добавление 3-го диска

Создаем и добавляем в систему 3-й диск

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WPzRED9Pv155aBt5t%2F-M8WaJH-CHeBFa5YYRxP%2Ftest_21.png?alt=media\&token=02c7f40b-33f8-49e1-9fbe-17cf33b36cae)

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WPzRED9Pv155aBt5t%2F-M8WaMOtKPU81kSbh6OM%2Ftest_22.png?alt=media\&token=a7e15907-73d4-4c97-9f1c-c32aa4620f06)

Запускаем систему, смотрим имя диска, и розмечаем его как при востановлении:

{% tabs %}
{% tab title="Command" %}

```
lsblk
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
loop0         7:0    0 93.9M  1 loop  /snap/core/9066
loop1         7:1    0 89.1M  1 loop  /snap/core/8268
sr0          11:0    1 1024M  0 rom   
vda         252:0    0   15G  0 disk  
├─vda1      252:1    0    1M  0 part  
├─vda2      252:2    0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vda3      252:3    0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
vdb         252:16   0   15G  0 disk  
├─vdb1      252:17   0    1M  0 part  
├─vdb2      252:18   0    1G  0 part  
│ └─md0       9:0    0 1022M  0 raid1 
│   └─md0p1 259:0    0 1018M  0 md    /boot
└─vdb3      252:19   0   14G  0 part  
  └─md1       9:1    0   14G  0 raid1 
    └─md1p1 259:1    0   14G  0 md    /
vdc         252:32   0   15G  0 disk  
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
fdisk /dev/vdc
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# fdisk /dev/vdc

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x395de8c7.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-31457279, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-31457279, default 31457279): +1M

Created a new partition 1 of type 'Linux' and of size 1 MiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
First sector (4096-31457279, default 4096): 
Last sector, +sectors or +size{K,M,G,T,P} (4096-31457279, default 31457279): +1G

Created a new partition 2 of type 'Linux' and of size 1 GiB.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (3,4, default 3): 
First sector (2101248-31457279, default 2101248): 
Last sector, +sectors or +size{K,M,G,T,P} (2101248-31457279, default 31457279): 

Created a new partition 3 of type 'Linux' and of size 14 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@test:/home/test#
```

{% endtab %}
{% endtabs %}

Добавляем новые разделы в **md0/md1:**

{% tabs %}
{% tab title="Command" %}

```
mdadm /dev/md0 --add /dev/vdc2
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# mdadm /dev/md0 --add /dev/vdc2
mdadm: added /dev/vdc2
root@test:/home/test#
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
mdadm /dev/md1 --add /dev/vdc3
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# mdadm /dev/md1 --add /dev/vdc3
mdadm: added /dev/vdc3
root@test:/home/test#
```

{% endtab %}
{% endtabs %}

Расширяем рейды с 2-х дисков до 3-ч.

{% tabs %}
{% tab title="Command" %}

```
mdadm -G /dev/md0 --raid-devices=3
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Command" %}

```
mdadm -G /dev/md1 --raid-devices=3
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Опция -**-raid-devices** указывает новое количество дисков используемое в массиве. Например, было 2 диска, а теперь расширяем до 3-х - указываем 3.
{% endhint %}

![](https://320276595-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LLF-7W0bZRRIkK1fkxn%2F-M8WPzRED9Pv155aBt5t%2F-M8WcRayU3rHvHntFl9M%2Ftest_20.png?alt=media\&token=9077960b-e4fc-46a0-b823-1e7fc4b99611)

Устанавливаем на него **grub**

{% tabs %}
{% tab title="Command" %}

```
grub-install /dev/vdc
```

{% endtab %}

{% tab title="Output" %}

```
root@test:/home/test# grub-install /dev/vdc
Installing for i386-pc platform.
Installation finished. No error reported.
root@test:/home/test# 
```

{% endtab %}
{% endtabs %}

Теперь в системе 3 диска в **RAID1** и с любого из них можно произвести загрузку системы.
