{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Аникин: заметки с тегом gdisk",
    "_rss_description": "Блог об администрировании Linux, BSD и не только",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/anikin.pw\/tags\/gdisk\/",
    "feed_url": "https:\/\/anikin.pw\/tags\/gdisk\/json\/",
    "icon": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884",
    "authors": [
        {
            "name": "Петр Аникин",
            "url": "https:\/\/anikin.pw\/",
            "avatar": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884"
        }
    ],
    "items": [
        {
            "id": "32",
            "url": "https:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/",
            "title": "Замена диска в програмном RAID1 в Linux",
            "content_html": "<p>Оглавление:<\/p>\n<p>\n<ol>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#del\">I. Удаление диска из массива<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#add\">II. Добавление диска в массив после замены<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#parttabl\">&emsp;1. Определение таблицы разделов(GPT или MBR) и перенос её на новый диск<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#adddisk\">&emsp;2. Добавление диска в массив<\/a><\/br>\n\t<a href=\"http:\/\/anikin.pw\/all\/zamena-dika-v-programnom-raid1-v-linux\/#grub\">III. Установка загрузчика<\/a>\n<\/ol><p>\nУ нас есть сервер в котором 2 диска: \/dev\/sda и \/dev\/sdb. Эти диски собраны у нас в софтверный RAID1 с помощью mdadm. Один из дисков вышел из строя, в нашем случае это \/dev\/sdb.<p>\n<a name=\"del\"><\/a>\n<b>I. Удаление диска из массива<\/b><p>\n\nПеред заменой диска желательно убрать диск из массива. Для начала проверим как размечен диск в массиве:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># cat \/proc\/mdstat \nPersonalities : [raid1] [raid0] [raid6] [raid5] [raid4] \nmd2 : active raid1 sda4[0] sdb4[1]\n      1456504640 blocks super 1.2 [2\/2] [UU]\n      \nmd1 : active raid1 sda3[0] sdb3[1]\n      7996352 blocks super 1.2 [2\/2] [UU]\n      \nmd0 : active raid1 sda2[0] sdb2[1]\n      499392 blocks super 1.2 [2\/2] [UU]\n      \nunused devices: &lt;none&gt;<\/code><\/pre><p>\n\nВ данном случае массив собран так. Что md0 состоит из sda2 и sdb2, md1 из sda3 и sdb3, md2 из sda4 и sdb4. На этом сервере md0 это \/boot, md1 — своп, md2 — корень. Убираем sdb из всех устройств.<p>\n\n<pre class=\"e2-text-code\"><code class=\"\"># mdadm \/dev\/md0 --remove \/dev\/sdb2\n# mdadm \/dev\/md1 --remove \/dev\/sdb3\n# mdadm \/dev\/md2 --remove \/dev\/sdb4<\/code><\/pre><p>\n\nЕсли разделы из массива не удаляются, это как в нашем случае. Mdadm не считает диск неисправным и использует его, и при удалении мы увидим ошибку, что устройство используется. В этом случае перед удалением помечаем диск как сбойный.<p>\n\n<pre class=\"e2-text-code\"><code class=\"\"># mdadm \/dev\/md0 -f \/dev\/sdb2\n# mdadm \/dev\/md1 -f \/dev\/sdb3\n# mdadm \/dev\/md2 -f \/dev\/sdb4<\/code><\/pre><p>\n\nА затем снова выполним команды по удалению разделов из массива.\nВсе, мы удалили сбойный диск из массива. Теперь можем писать в датацентр запрос на замену диска.<p>\n<a name=\"add\"><\/a>\n<b>II. Добавление диска в массив после замены<\/b><p>\n<a name=\"parttabl\"><\/a>\n&emsp;&emsp;<b>1. Определение таблицы разделов(GPT или MBR) и перенос её на новый диск<\/b><p>\nПосле замены поврежденного диска нужно добавить новый диск в массив. Для этого надо определить какая у нас таблица разделов: GPT или MBR. Для этого будем использовать gdisk\nУстановим gdisk:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># apt-get install gdisk -y<\/code><\/pre><p>\nВыполняем:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># gdisk -l \/dev\/sda<\/code><\/pre><p>\nГде \/dev\/sda — исправный диск находящийся в raid.\nВ выводе будет примерно это для MBR:<p>\n<pre class=\"e2-text-code\"><code class=\"\">Partition table scan:\nMBR: MBR only\nBSD: not present\nAPM: not present\nGPT: not present<\/code><\/pre><p>\n\nИ примерно это для GPT:<p>\n<pre class=\"e2-text-code\"><code class=\"\">Partition table scan:\nMBR: protective\nBSD: not present\nAPM: not present\nGPT: present<\/code><\/pre><p>\n\nПеред добавлением диска в массив нам нужно на нем создать разделы в точности такие же как и  на sda. В зависимости от разметки диска это делается по разному.<p>\n<b>Копирование разметки для GPT:<\/b><p>\n<pre class=\"e2-text-code\"><code class=\"\"># sgdisk -R \/dev\/sdb \/dev\/sda<\/code><\/pre><p>\nЗдесь надо быть внимательным. Первым пишется диск на который копируется разметка, а вторым с которого копируют. Если перепутать их местами, то разметка на изначально исправном диске будет уничтожена.<\/br>\nДаем диску новый случайный UIDD:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># sgdisk -G \/dev\/sdb<\/code><\/pre><p>\n<b>Копирование разметки для MBR:<\/b><p>\n<pre class=\"e2-text-code\"><code class=\"\"># sfdisk -d \/dev\/sda | sfdisk \/dev\/sdb<\/code><\/pre><p>\nЗдесь наоборот первым пишется диск с которого переносим разметку, а вторым на который переносим.\nЕсли разделы не видны в системе, то можно перечитать таблицу разделов командой:<p>\n<\/code># sfdisk -R \/dev\/sdb<\/code><p>\n<a name=\"adddisk\"><\/a>\n&emsp;&emsp;<b>2. Добавление диска в массив<\/b><p>\nКогда мы создали разделы на \/dev\/sdb, то можно добавлять диск в массив.<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mdadm \/dev\/md0 -a \/dev\/sdb2\n# mdadm \/dev\/md1 -a \/dev\/sdb3\n# mdadm \/dev\/md2 -a \/dev\/sdb4<\/code><\/pre><p>\n<a name=\"grub\"><\/a>\n<b>III. Установка загрузчика<\/b><p>\nПосле добавления диска в массив нужно установить на него загрузчик. Если сервер загружен в нормальном режиме, то это делается одной командой:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># grub-install \/dev\/sdb<\/code><\/pre><p>\nЕсли сервер загружен в recovery или rescue, т.е с live cd, то установка загрузчика выглядит следующим образом.<\/br>\nМонтируем корневую файловую систему в  \/mnt:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount \/dev\/md2 \/mnt<\/code><\/pre><p>\nМонтируем boot:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount \/dev\/md0 \/mnt\/boot<\/code><\/pre><p>\nМонтируем \/dev, \/proc и \/sys:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># mount --bind \/dev \/mnt\/dev\n# mount --bind \/proc \/mnt\/proc\n# mount --bind \/sys  \/mnt\/sys<\/code><\/pre><p>\nЗатем делаем chroot в примонтированную систему:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># chroot \/mnt<\/code><\/pre><p>\nИ устанавливаем grub на sdb:<p>\n<pre class=\"e2-text-code\"><code class=\"\"># grub-install \/dev\/sdb<\/code><\/pre><p>\nТеперь можно попробовать загрузится в нормальный режим.\n<p>\n<b>P.S.<\/b>\nЕсли при установке загрузчика возникнет ошибка Could not find device for \/boot\/boot: not found or not a block device то вам <a href=\"http:\/\/anikin.pw\/all\/could-not-find-device-for-boot-boot-not-found-or-not-a-block-dev\/\">сюда<\/a>.",
            "date_published": "2014-08-08T09:42:17+03:00",
            "date_modified": "2015-01-25T11:26:21+03:00",
            "tags": [
                "debian",
                "gdisk",
                "GPT",
                "mbr",
                "mdadm",
                "raid",
                "raid1",
                "ubuntu"
            ],
            "_date_published_rfc2822": "Fri, 08 Aug 2014 09:42:17 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "32",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}