Я думаю, что обычно разделение вещей на разные файловые системы не помогает/улучшает безопасность. Если кто-то взломает систему во время ее работы, все равно все будет смонтировано, и нет никакой логической разницы в том, чтобы все было в одной файловой системе. Какие доводы приводились в изученном вами материале?
Тем не менее, это может повысить производительность (другие файловые системы или другое оборудование ниже этих точек монтирования) и сократить время аварийного восстановления (например,если только SSD, на котором хранился /var, сгорел, вам нужно только восстановить эту резервную копию, а все остальное останется работать).
Вы спрашивали о рекомендуемых размерах разделов:
- За
/
у вас хорошо с 15-20 ГБ. Мне никогда не требовалось больше для сервера (запуск веб-сервера + почтовый сервер).
менять
Я обычно ставлю на собственный том/раздел, который имеет тот же размер, что и оперативная память, просто для того, чтобы могла работать приостановка на диск. Раньше люди рекомендовали размер 2xRAM, но с нынешними размерами RAM, когда вы сталкиваетесь с ситуацией, когда вам нужен серьезный объем подкачки, у вас все равно возникают проблемы. Вы заметите это по сильному замедлению, и вам следует быстро увеличить доступную оперативную память.
/ботинок
просто нужно 500 МБ, что дает место для 8+ версий ядра + initrd. Обязательно запустите автоматическое удаление
часто, чтобы сохранить его обрезанным после обновления ядра.
- я бы оставил
/usr
и /опт
как каталоги на /
, просто не вижу смысла перемещать их в свои файловые системы.
- Как описано в это руководство по закалке, имеющий отдельный том для
/tmp
имеет смысл, так как позволяет вам сделать этот доступный для записи каталог более ограниченным - как в том, сколько места он может использовать из полностью доступного пространства, так и в том, что можно сделать с файлами, которые там хранятся. Руководство рекомендует использовать опции nodev, nosuid и noexec при монтировании файловой системы. Руководство дает только команды монтирования для «одноразового использования». Преобразование этого в строку в /etc/fstab будет означать, что вы поместите узел, nosuid, noexec
в 4-й (параметры) столбец строки, где вы монтируете выделенный том /tmp на /tmp
.
- Это оставляет нас с
/дом
и /вар
- это обычно "важные" вещи. На моих серверах /дом
почти пусто, но /вар
содержит public_html, журналы, базы данных и т. д. Поэтому я сохраняю /дом
как каталог на /
, но /вар
определенно получает свой собственный том и резервируется чаще всего. Дайте ему все оставшееся пространство после того, как было сделано выше.
Затем вы спросили, как сделать переход:
- В работающей системе, где все включено
/
, подключите новый диск (файл VDI, ...), подготовьте его с помощью pvcreate, lvcreate и файловых систем по вашему выбору (например, mkfs.ext4).
- Затем создайте временные точки монтирования в /mnt, например. /mnt/newroot, /mnt/newvar, ... и смонтировать туда файловые системы.
- Затем используйте
rsync -xaP <источник>/ <назначение>/
для каждой из ваших файловых систем. Параметр «-x» предотвратит пересечение границ файловой системы rsync, т. е. если вы rsync -xaP //mnt/newroot/
он также не будет копировать /var, /home или даже все новые файловые системы, смонтированные в /mnt. «-a» гарантирует, что разрешения и т. д. будут переданы без изменений, а «-P» показывает прогресс. Для получения подробной информации см. человек rsync
.
После этого отредактируйте /mnt/newroot/etc/fstab
и убедитесь, что вы перечислили все файловые системы в соответствующих точках монтирования. Если вы зашли так далеко, это не должно быть слишком сложно (поскольку вы выбрали все имена /dev/mapper/..., файловые системы и т. д.).
Вам также придется использовать grub-install и, возможно, update-grub, чтобы сделать новый диск загрузочным, но я не уверен в точной процедуре. С виртуальными машинами вы можете легко попробовать его, и если он не загружается, снова подключите старый диск и исправьте его.
Для справки, вот сеанс оболочки, который дает вам некоторые конкретные команды для разбиения на разделы + LVM + форматирование + ссылки в темах fstab. Обратите внимание, что вам, скорее всего, придется изменить их, например, если ваше устройство не /dev/sda, если вы хотите использовать другие файловые системы и т. д. - это просто пример.
# После использования fdisk для создания одного раздела, охватывающего все устройство,
# выглядит так:
root@ubuntu:~# fdisk -l /dev/sda
Диск /dev/sda: 100 ГиБ, 107374182400 байт, 209715200 секторов
Модель диска: VBOX HARDDISK
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 18ACB4C9-3F33-7041-8BEB-D819F138A809
Размер начальных и конечных секторов устройства Тип
/dev/sda1 2048 209715166 209713119 100G Linux LVM
# Создаем физический том для LVM
root@ubuntu:~# pvcreate /dev/sda1
Физический том "/dev/sda1" успешно создан.
# Создайте группу томов с именем "vg1" для LVM, которая будет
# храним все наши логические тома
root@ubuntu:~# vgcreate vg1 /dev/sda1
Группа томов "vg1" успешно создана
# Создайте логические тома, как описано выше
root@ubuntu:~# lvcreate --name root --size 20G vg1
Создан логический том "root".
root@ubuntu:~# lvcreate --name swap --size 8G vg1
Логический том "своп" создан.
root@ubuntu:~# lvcreate --name boot --size 500M vg1
Создан логический том "boot".
root@ubuntu:~# lvcreate --name tmp --size 5G vg1
Создан логический том "tmp".
# Посмотрите на логические тома
root@ubuntu:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
загрузка vg1 -wi-a----- 500.00м
корень vg1 -wi-a----- 20.00g
своп vg1 -wi-a----- 8.00g
tmp vg1 -wi-a----- 5.00g
# Посмотрите на группу томов и посмотрите, сколько места осталось
root@ubuntu:~# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 4 0 wz--n- <100,00 г <66,51 г
# Использовать оставшееся место для последнего логического тома, var
root@ubuntu:~# lvcreate --name var --size 66.5G vg1
Создан логический том "var".
# Посмотрите еще раз на тома
root@ubuntu:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
загрузка vg1 -wi-a----- 500.00м
корень vg1 -wi-a----- 20.00g
своп vg1 -wi-a----- 8.00g
tmp vg1 -wi-a----- 5.00g
var vg1 -wi-a----- 66.50g
# Отформатировать все тома с файловой системой ext4
для i в /dev/mapper/vg1-*; сделать mkfs.ext4 $i; сделано
# Превратить vg1-swap в пространство подкачки
mkswap /dev/mapper/vg1-своп
# Создайте записи fstab, которые выглядят так
/dev/mapper/vg1-root / ext4 по умолчанию 0 1
/dev/mapper/vg1-boot /boot ext4 по умолчанию 0 2
/dev/mapper/vg1-var /var ext4 по умолчанию 0 2
/dev/mapper/vg1-tmp /tmp ext4 nosuid,nodev,noexec 0 0
/dev/mapper/vg1-swap нет swap sw 0 0