IT блог Александра Солнышкова

Статьи об информационных технологиях.

Разметка диска в FreeBSD

Предварительно, перед решительными действиями по разметке диска, можно посмотреть информацию об установленных в системе дисках командами разной степени информативности (по убывающей):

# geom disk list
# camcontrol devlist
# sysctl kern.disks

Диск, который я собираюсь переразбить, у меня смонтирован, поэтому начинаю с команды размонтирования:

# umount /dev/ada2p2

Смотрю информацию по разделам (слайсам):

# gpart show /dev/ada2

вижу картину:

        34 3907029101  ada2  GPT  (1.8T)
        34          6        - free -  (3.0K)
        40    8388608     1  freebsd-swap  (4.0G)
   8388648 3898640480     2  freebsd-ufs  (1.8T)
3907029128          7        - free -  (3.5K)

Команда

# gpart destroy -F ada2

дает ответ

gpart: Device busy

Начинаем удалять "послайсово"

# gpart delete -i 2 ada2
# gpart delete -i 1 ada2

Первая команда успешна, вторая повторяет знакомый ответ:

gpart: Device busy

Применение команды

# sysctl kern.geom.debugfilags=16

(и затем обратно в ноль) оказалось полезным в других случаях, о которых много говорят в сети, но не в данном. В данном случае помогла команда

# swapoff /dev/ada2p1

Теперь команды

# gpart delete -i 1 ada2
# gpart destroy -F ada2

проходят успешно.

Проведем операцию заполнения диска нулевыми значениями, полезную, если у диска проблемы.

# dd if=/dev/zero of=/dev/ada2 bs=1M

Операция занимает довольно много времени, в течение которого каких-либо сообщений не выводится. Но текущее состояние всегда можно узнать по комбинации клавиш Ctrl+t

Теперь по-новой создаем разделы (партицию и слайсы). Можно использовать разные схемы разметки:
- BSD
- GPT
- MBR
- и смешанную из верхних.

Мы выбираем GPT:

# gpart create -s GPT ada2
# gpart add -a 8 -s 4G -t freebsd-swap ada2
# gpart add -a 8 -s 3898604536 -t freebsd-ufs ada2

и сразу же создаем файловую систему во втором разделе (слайсе):

# newfs -U /dev/ada2p2

Осталось смонтировать диск. Для этого проверяем наличие в файле /etc/fstab строк:

# Device        Mountpoint      FStype  Options Dump    Pass#
...
/dev/ada2p1     none            swap    sw      0       0
/dev/ada2p2     /mnt/ada2       ufs     rw      0       0

и выполняем команду

# mount -a

Для запуска свопа отдельная команда:

# swapon /dev/ada2p1

Вот теперь всё.