Загрузка данных


#############################################
# ПРАКТИЧЕСКАЯ РАБОТА 19
# Файловая система, блочные устройства и LVM
#############################################

#############################################
# ПОДГОТОВКА: посмотреть диски
#############################################

# посмотреть список блочных устройств и размер нового диска
lsblk
sudo fdisk -l

# предполагаем, что новый диск = /dev/sdb (без разделов)


#############################################
# ЗАДАНИЕ 1
# Разделы, файловые системы EXT3/XFS, монтирование, fstab
#############################################

# 1.1 создать на /dev/sdb таблицу разделов msdos
sudo parted /dev/sdb --script mklabel msdos

# проверить
sudo parted /dev/sdb --script print

# 1.2 создать два раздела по 100 МБ
# первый раздел: sdb1, 1MiB–101MiB
sudo parted /dev/sdb --script mkpart primary ext3 1MiB 101MiB
# второй раздел: sdb2, 101MiB–201MiB
sudo parted /dev/sdb --script mkpart primary xfs 101MiB 201MiB

# проверить, что разделы созданы
sudo parted /dev/sdb --script print
lsblk /dev/sdb

# 1.3 создать файловые системы EXT3 и XFS
sudo mkfs.ext3 /dev/sdb1
sudo mkfs.xfs /dev/sdb2

# 1.4 создать точки монтирования /mnt/part1 и /mnt/part2
sudo mkdir -p /mnt/part1
sudo mkdir -p /mnt/part2

# 1.5 смонтировать файловые системы
sudo mount /dev/sdb1 /mnt/part1
sudo mount /dev/sdb2 /mnt/part2

# проверить
df -h | grep /mnt/part
mount | grep /mnt/part

# 1.6 получить UUID разделов для записи в /etc/fstab
sudo blkid /dev/sdb1
sudo blkid /dev/sdb2

# допустим, получим:
# /dev/sdb1: UUID="UUID1" TYPE="ext3"
# /dev/sdb2: UUID="UUID2" TYPE="xfs"
# подставь свои UUID ниже

# 1.7 создать резервную копию fstab
sudo cp /etc/fstab /etc/fstab.backup_before_lab19

# 1.8 добавить строки в /etc/fstab:
#  - /mnt/part1 только для чтения (ro)
#  - /mnt/part2 с запретом запуска (noexec)
sudo bash -c 'cat >> /etc/fstab << "EOT"
UUID=UUID1  /mnt/part1  ext3  defaults,ro   0  0
UUID=UUID2  /mnt/part2  xfs   defaults,noexec  0  0
EOT'

# ВАЖНО: замени UUID1 и UUID2 на реальные значения из blkid!
# Для этого можно сначала открыть fstab в редакторе:
# sudo nano /etc/fstab

# 1.9 смонтировать все из fstab и проверить
sudo umount /mnt/part1 /mnt/part2 2>/dev/null || true
sudo mount -a
mount | grep /mnt/part
df -h | grep /mnt/part

# 1.10 проверить, что:
# - на /mnt/part1 нельзя записывать (ro)
# - на /mnt/part2 нельзя запускать файлы (noexec)
sudo touch /mnt/part1/test_ro 2>/dev/null || echo "запись на /mnt/part1 запрещена (как и нужно)"
sudo touch /mnt/part2/test_noexec
sudo chmod +x /mnt/part2/test_noexec
/mnt/part2/test_noexec 2>/dev/null || echo "запуск в /mnt/part2 запрещён (как и нужно)"

# 1.11 перезагрузить ОС для проверки настроек
# (выполнить вручную, потом снова зайти и продолжить)
# sudo reboot

# после перезагрузки проверить, что файловые системы смонтировались по fstab
mount | grep /mnt/part
df -h | grep /mnt/part

# 1.12 очистка: удалить точки монтирования и разделы после проверки
# сначала размонтировать
sudo umount /mnt/part1
sudo umount /mnt/part2

# удалить строки из /etc/fstab (можно вернуть бэкап)
sudo mv /etc/fstab.backup_before_lab19 /etc/fstab

# удалить разделы на /dev/sdb
sudo parted /dev/sdb --script rm 1
sudo parted /dev/sdb --script rm 2

# проверить, что разделов нет
sudo parted /dev/sdb --script print
lsblk /dev/sdb


#############################################
# ЗАДАНИЕ 2
# LVM: PV, VG, LV, расширение
#############################################

# ИСХОДНО: /dev/sdb свободный диск без разделов (после очистки выше)

# 2.1 создать на /dev/sdb раздел /dev/sdb1 размером 150МБ
sudo parted /dev/sdb --script mklabel msdos
sudo parted /dev/sdb --script mkpart primary 1MiB 151MiB

# проверить
sudo parted /dev/sdb --script print
lsblk /dev/sdb

# 2.2 создать LVM physical volume на /dev/sdb1
sudo pvcreate /dev/sdb1

# посмотреть PV
sudo pvs
sudo pvdisplay /dev/sdb1

# 2.3 создать volume group TEST_VG
sudo vgcreate TEST_VG /dev/sdb1

# посмотреть VG
sudo vgs
sudo vgdisplay TEST_VG

# 2.4 создать logical volume TEST_LV на весь доступный объём
sudo lvcreate -n TEST_LV -l 100%FREE TEST_VG

# посмотреть LV
sudo lvs
sudo lvdisplay /dev/TEST_VG/TEST_LV

# 2.5 создать файловую систему EXT4 на TEST_LV
sudo mkfs.ext4 /dev/TEST_VG/TEST_LV

# (по желанию) смонтировать для проверки
sudo mkdir -p /mnt/test_lv
sudo mount /dev/TEST_VG/TEST_LV /mnt/test_lv
df -h | grep test_lv

# 2.6 создать ещё один раздел /dev/sdb2 размером 150МБ
sudo umount /mnt/test_lv 2>/dev/null || true

sudo parted /dev/sdb --script mkpart primary 151MiB 301MiB

# проверить
sudo parted /dev/sdb --script print
lsblk /dev/sdb

# 2.7 создать PV на /dev/sdb2 и добавить его в TEST_VG
sudo pvcreate /dev/sdb2
sudo vgextend TEST_VG /dev/sdb2

# проверить, что VG вырос
sudo vgs
sudo vgdisplay TEST_VG

# 2.8 расширить LV TEST_LV на весь свободный объём VG и увеличить файловую систему EXT4

# вариант 1: одной командой (если есть lvextend с -r)
sudo lvextend -l +100%FREE -r /dev/TEST_VG/TEST_LV

# если -r не поддерживается, то:
# sudo lvextend -l +100%FREE /dev/TEST_VG/TEST_LV
# sudo e2fsck -f /dev/TEST_VG/TEST_LV
# sudo resize2fs /dev/TEST_VG/TEST_LV

# 2.9 проверить, что LV и FS расширены
sudo lvs
sudo lvdisplay /dev/TEST_VG/TEST_LV

sudo mount /dev/TEST_VG/TEST_LV /mnt/test_lv
df -h | grep test_lv

# 2.10 очистка: размонтировать, удалить LV/VG/PV и разделы

sudo umount /mnt/test_lv

# удалить LV
sudo lvremove -y /dev/TEST_VG/TEST_LV

# удалить VG
sudo vgremove -y TEST_VG

# удалить PV
sudo pvremove /dev/sdb1
sudo pvremove /dev/sdb2

# удалить разделы на /dev/sdb
sudo parted /dev/sdb --script rm 1
sudo parted /dev/sdb --script rm 2

# финальная проверка
sudo parted /dev/sdb --script print
lsblk /dev/sdb

#############################################
# КОНЕЦ БЛОКА
#############################################