Задача – разбить диск вручную, создать два раздела LVM: корень для самой системы – /
и для домашних каталогов – /home
.
/home
должен сохранить данные после установки/переустановки системы.
Схема разбивки диска будет такая:
/boot
– требуется вынести в отдельный раздел, т.к. /
будет в LVM-разделе. 2 гигабайта – для того, что бы кроме ядер добавить позже туда LiveCD, который можно будет добавить в GRUB. Не пробовал – но мысль интересная. Ext4, но с отключенным журналированием.
swap
– 16Г памяти, т.к. установка на ноут – то поставим 16Г для hibernate из-за Chrome/Chromium.
Хотя дискуссии на тему “Какой размер свапа нужен” не утихают по сей день.
LVM Physical Volume – LVM с остальными разделами:
/
– root
, Ext4, 30G
/home
– home
, Ext4, все оставшее место, ~480G.
HDD разбивается на PV – Physical Volumes, которые собираются в VG – Volume Group, а VG в свою очередь – будут содержать разделы LV – Logical Volume – с /
и /home
.
Содержание
Разбивка диска – fdisk
Текущее состояние:
# fdisk -l Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop0: 998.9 MiB, 1047371776 bytes, 2045648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Создаем три раздела:
sda1
– 2G под/boot
sda2
– 16G подswap
sda3
– остаток, под тома LVM
Разбивка с помощью fdisk
, после #
комментарии к действиям:
# fdisk /dev/sda Welcome to fdisk (util-linux 2.25.2). 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 0xcc128b12. Command (m for help): p # текущая разметка Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xcc128b12 Command (m for help): n # n = new, создаем новый раздел под /boot Partition type p primary (0 primary, 0 extended, 4 free) # оставляем p - primary e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): # номер раздела, тоже оставляем без изменений First sector (2048-1048575999, default 2048): # стартовый сектор для нового раздела, тут и дальше подставляется автоматом, можно не менять Last sector, +sectors or +size{K,M,G,T,P} (2048-1048575999, default 1048575999): +2G # вместо указания последнего сектора - можно использовать +size{K,M,G,T,P} Created a new partition 1 of type 'Linux' and of size 2 GiB. Command (m for help): n # добавляем второй раздел, под swap 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 (4196352-1048575999, default 4196352): Last sector, +sectors or +size{K,M,G,T,P} (4196352-1048575999, default 1048575999): +16G # аналогично предыдущему примеру - просто указываем 16 гигабайт Created a new partition 2 of type 'Linux' and of size 16 GiB. Command (m for help): n # третий раздел - под тома LVM 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 (37750784-1048575999, default 37750784): Last sector, +sectors or +size{K,M,G,T,P} (37750784-1048575999, default 1048575999): # оставляем по умолчанию - до конца диска Created a new partition 3 of type 'Linux' and of size 482 GiB. Command (m for help): p # проверяем разметку - все ок? Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xcc128b12 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 4196351 4194304 2G 83 Linux /dev/sda2 4196352 37750783 33554432 16G 83 Linux /dev/sda3 37750784 1048575999 1010825216 482G 83 Linux Command (m for help): a # устаналиваем boot-флаг - с какого раздела грузить систему, нам нужен /boot, т.е. sda1, он же первый по номеру Partition number (1-3, default 3): 1 The bootable flag on partition 1 is enabled now. Command (m for help): t # меняем тип второго раздела Partition number (1-3, default 3): 2 Hex code (type L to list all codes): 82 # 82 == swap, см. L для всех Changed type of partition 'Linux' to 'Linux swap / Solaris'. Command (m for help): p Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xcc128b12 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 4196351 4194304 2G 83 Linux /dev/sda2 4196352 37750783 33554432 16G 82 Linux swap / Solaris /dev/sda3 37750784 1048575999 1010825216 482G 83 Linux Command (m for help): w # записываем новую таблицу The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Вот так они выглядят в cfdisk
:
Настройка LVM
Устанавливаем сам менеджер:
# apt-get install lvm2
Создаем физический раздел (Physical Volume).
Под LVM мы создавали /dev/sda3
, используем его:
# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
Проверяем:
# pvdisplay "/dev/sda3" is a new physical volume of "482.00 GiB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size 482.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID tDYT9a-3I8i-5SvF-xmdm-Qhtm-22zV-u2OSqM
# pvscan PV /dev/sda3 lvm2 [482.00 GiB] Total: 1 [482.00 GiB] / in use: 0 [0 ] / in no VG: 1 [482.00 GiB]
Создаем Volume Group и подключаем в него созданный PV:
# vgcreate vg_deb /dev/sda3 /proc/devices: No entry for device-mapper found Volume group "vg_deb" successfully created
Проверяем:
# vgdisplay --- Volume group --- VG Name vg_deb System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 482.00 GiB PE Size 4.00 MiB Total PE 123391 Alloc PE / Size 0 / 0 Free PE / Size 123391 / 482.00 GiB VG UUID BUQdkO-Wfrc-xFJK-wyoU-ckbQ-OAMt-rkaOZv
Создаем Logical Volume для раздела /root
размером 30G и подключаем его к созданному VG:
# lvcreate -L 30G -n root vg_deb Logical volume "root" created
Создаем второй раздел – под /home
, который займет все оставшее место в VG (опция -l
с параметром 100%FREE
):
# lvcreate -l 100%FREE -n home vg_deb Logical volume "home" created
Проверяем:
# lvdisplay --- Logical volume --- LV Path /dev/vg_deb/root LV Name root VG Name vg_deb LV UUID uc2Dp7-ZDd2-fRN4-sbTf-Erem-7Cso-dLRpQI LV Write Access read/write LV Creation host, time debian, 2016-03-02 20:47:18 +0000 LV Status available # open 0 LV Size 30.00 GiB Current LE 7680 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Path /dev/vg_deb/home LV Name home VG Name vg_deb LV UUID sF7XOf-rMIq-BIOY-ymVl-ReYx-kVpG-uqd30D LV Write Access read/write LV Creation host, time debian, 2016-03-02 20:47:30 +0000 LV Status available # open 0 LV Size 452.00 GiB Current LE 115711 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1
# lvscan ACTIVE '/dev/vg_deb/root' [30.00 GiB] inherit ACTIVE '/dev/vg_deb/home' [452.00 GiB] inherit
Файлы устройств:
# ls -l /dev/vg_deb/ total 0 lrwxrwxrwx 1 root root 7 Mar 2 15:44 home -> ../dm-1 lrwxrwxrwx 1 root root 7 Mar 2 15:44 root -> ../dm-0
Создаем файловые системы.
На всех разделах будет Ext4, но раздел /boot
с отключенным журналированием.
Помните, что /boot
== /dev/sda1
, swap
== /dev/sda2
и LVM разделы – на /dev/sda3
.
Создаем ФС для /boot
:
# mkfs.ext4 /dev/sda1 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 524288 4k blocks and 131072 inodes Filesystem UUID: eb6a55ef-af06-4775-9779-bf0f18939bbe Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done
Отключаем журналирование:
# tune2fs -O ^has_journal /dev/sda1 tune2fs 1.42.12 (29-Aug-2014)
Проверяем:
# dumpe2fs /dev/sda1 | grep features dumpe2fs 1.42.12 (29-Aug-2014) Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
has_journal
нет – ОК, продолжаем.
Создаем ФС для /root
:
# mkfs.ext4 /dev/vg_deb/root mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 7864320 4k blocks and 1966080 inodes Filesystem UUID: f32a2215-11c3-43fe-ae47-e1199a56fba0 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
И для /home
:
# mkfs.ext4 /dev/vg_deb/home mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 118488064 4k blocks and 29622272 inodes Filesystem UUID: 9c1290eb-8f32-4c69-abc6-29b647d4eefb Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Подготовка диска готова.
Создадим файл, что бы проверить /home
после установки новой системы.
Монтируем созданный раздел:
# mount /dev/vg_deb/home /mnt/ # ls -l /mnt/ total 16 drwx------ 2 root root 16384 Mar 3 05:24 lost+found # mkdir /mnt/setevoy # touch /mnt/setevoy/homefile.lock
Установка Debian
Я пропущу часть, которая не касается дисков.
Выбираем Manual метод:
Далее – указываем какие разделы куда монтировать:
Почему-то инсталятор отображает sda1
как Ext2 – надо погуглить на эту тему.
Указываем #1 как загрузочный – переключаемся на него, Enter:
Use as – Ext4:
Mount point – /boot
:
При желании – редактируем другие опции, например – Label == boot.
По завершению – выбираем Done settings:
Повторяем для #2 – как swap
:
Для #3 – Use as – pythical volume for LVM:
Аналогично – указываем диски для LVM home
и /
:
По завершению – выбираем Finish:
После чего – продолжаем установку как обычно:
GRUB2 устанавливаем на /dev/sda
:
Готово:
Перезагружаемся, проверяем:
И созданный для проверки файл – на месте:
/etc/fstab
выглядит так:
$ cat /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/vg_deb-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=d821d9d5-0b15-4265-897e-9b0b213d9a88 /boot ext4 defaults 0 2 /dev/mapper/vg_deb-home /home ext4 defaults 0 2 # swap was on /dev/sda2 during installation UUID=7bdfb212-249b-4865-993e-92acd848399e none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Ссылки по теме:
Linux: LVM – Linux Volume Manager – подключение нового жесткого диска
https://www.debian-administration.org
https://www.centos.org
https://docs.fedoraproject.org