Debian: ручная разбивка диска с fdisk, создание разделов LVM и установка системы

Автор: | 03/03/2016
 

debian-logo_lenny2Задача — разбить диск вручную, создать два раздела LVM: корень для самой системы — / и для домашних каталогов — /home.

/home должен сохранить данные после установки/переустановки системы.

Схема разбивки диска будет такая:

/boot — требуется вынести в отдельный раздел, т.к. / будет в LVM-разделе. 2 гигабайта — для того, что бы кроме ядер добавить позже туда LiveCD, который можно будет добавить в GRUB. Не пробовал — но мысль интересная. Ext4, но с отключенным журналированием.

swap — 16Г памяти, т.к. установка на ноут — то поставим 16Г для hibernate из-за Chrome/Chromium.
Хотя дискуссии на тему «Какой размер свапа нужен» не утихают по сей день.

LVM Physical VolumeLVM с остальными разделами:

/root, Ext4, 30G

/homehome, Ext4, все оставшее место, ~480G.

HDD разбивается на PV — Physical Volumes, которые собираются в VGVolume 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:

debian_lvm_1

Настройка 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 метод:

debian_500_1_1

Далее — указываем какие разделы куда монтировать:

d1

Почему-то инсталятор отображает sda1 как Ext2 — надо погуглить на эту тему.

Указываем #1 как загрузочный — переключаемся на него, Enter:

d2

Use asExt4:

d3

Mount point/boot:

d4

При желании — редактируем другие опции, например — Label == boot.

По завершению — выбираем Done settings:

d5

Повторяем для #2 — как swap:

d6

Для #3Use as — pythical volume for LVM:

d7

Аналогично — указываем диски для LVM home и /:

d8

 

d9

 

d10

 

d11По завершению — выбираем Finish:

d12

 

d13

После чего — продолжаем установку как обычно:

d14

GRUB2 устанавливаем на /dev/sda:

d15

d16

Готово:

d17

Перезагружаемся, проверяем:

d18

 

d19

И созданный для проверки файл — на месте:

d20

/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 — подключение нового жесткого диска

http://nlug.ml1.co.uk

https://www.debian-administration.org

https://www.centos.org

https://wiki.debian.org

http://www.thegeekstuff.com

https://docs.fedoraproject.org