|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> настройка
—> Удаленное разбиение HDD
Выделение дискового пространства на удаленно доступном сервере.
Автор: bisyarin.
О чем пойдет речь?
Хочу поделиться опытом полученным при решении одной, довольно тривиальной, на первый взгляд, задачи.
Условия задачи просты:
Имеем доступный только по сети сервер, т.е. физического доступа, в случае какой-либо моей ошибки, к нему не предвидится. На этом сервере есть винчестер разбитый всего на один слайс не занимающий всего доступного пространства. То есть на диске есть неутилизированное место и нужно подготовить это место к использованию.
Замечание: здесь нет подробных описаний работы с утилитами, так как это прекрасно описано в других источниках.
Тестируем в VMware
Решив в начале потренироваться на кошках, устанавливаю на виртуальную машину VMware операционную систему FreeBSD 6.2. Размер виртуального диска я взял 2 гигабайта. При установке был создан один слайс размером 1 гигабайт. Остальное место послужит испытательным полигоном:
Необходимо добавить еще один слайс объемом 1 гигабайт, добавить в него один BSD-раздел, на этом BSD-разделе создать UFS2 файловую систему и прописать монтирование BSD-раздела в /etc/fstab. После этого, для уверенности, перезагрузимся и посмотрим загружается ли FreeBSD вообще и монтируется ли файловая система при загрузке.
Разбиваем диск
Используем sysinstall
Итак, первая мысль приходящая в голову, это сделать все с помощью утилиты sysinstall, ведь она и слайс сделает с BSD-разделом и файловую систему создаст. Sysinstall -— и дело с концом.
Создаем слайс с помощью sysinstall
Перед работой с дисками в sysinstall следует сказать:
# sysctl kern.geom.debugflags=16
| Это включит "foot shooting" в GEOM (см. geom(4)), без этого sysinstall не сможет изменить таблицу разделов на работающей системе:
а с этим сможет:
Но тут-то как раз и засада. Дело в том, что добавляя второй слайс, sysinstall, судя по выводу fdisk, назначает их оба активными:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 2096577 (1023 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 1023/ head 15/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 2096640, size 2097648 (1024 Meg), flag 80 (active)
beg: cyl 1023/ head 255/ sector 63;
end: cyl 1023/ head 15/ sector 63
| Из-за этого мы получаем сообщение об испорченной таблице разделов при загрузке:
или не получаем ICMP-ответа от сервера, если он доступен только по сети.
Оказывается это поведение уже описано в нескольких PR, например, в этом.
Обойти эту проблему можно, если, в том же sysinstall, сразу же после добавления нового слайса явно указать активный раздел.
Создаем BSD-раздел с помощью sysinstall
Отлично, слайс добавили, хотя немного и поплясали с бубном. Следующая часть решения задачи состоит в добавления нового BSD-раздела.
Здесь стоит сразу же сказать о еще одной проблеме sysinstall. Эта утилита при добавлении слайса или BSD-раздела, не создает
соответствующих устройств в devfs. А чтобы что-нибудь сделать с только что созданным устройством, например, создать BSD-раздел на слайсе, этот слайс должен быть виден системой. Я пока не нашел другого решения этой проблемы кроме перезагрузки. PR об этом.
Перед перезагрузкой можно временно добавить в /etc/sysctl.conf строку устанавливающую kern.geom.debugflags в 16, чтобы не выставлять эту sysctl-переменную каждый раз после перезагрузки.
Перезагружаемся и проверяем наличие нового слайса в /dev. Добавляем новый BSD-раздел. Перед записью данных на диск, Toggle Newfs со спокойной душой можно поставить в "N", так как файловая система все равно не может быть создана, потому что новый BSD-раздел будет доступен только после перезагрузки. игнорируем ошибки о невозможности смонтировать этот раздел и в итоге получаем примерно такое:
И если сейчас выйти из sysinstall и перегрузить сервер, то повторится тоже самое что и при добавлении слайса. И все из-за тех же двух активный разделов. Решение аналогично. Нужно, после добавления нового BSD-раздела с помощью меню label, сразу же зайти в меню fdisk и выставить нужный активный раздел.
Перезагружаемся :-). Проверяем наличие нового BSD-раздела в /dev.
Создаем ФС с помощью sysinstall
Теперь нужно создать файловую систему на новом разделе. Заходим в сисинсталовский disklabel editor. Встаем на наш новый раздел, назначаем mount point и не забудем воспользоваться Toggle Newfs. После записи данных на диск, снова идем в редактор слайсов и назначаем активный раздел. mount показывает, что новый раздел смонтирован:
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1e on /tmp (ufs, local, soft-updates)
/dev/ad0s1f on /usr (ufs, local, soft-updates)
/dev/ad0s1d on /var (ufs, local, soft-updates)
/dev/ad0s2d on /newspace (ufs, local, soft-updates)
| Не забудем убрать из /etc/sysctl.conf то, что временно добавляли.
На этом, большая часть задачи решена. Хотя мне, после всего этого, перехотелось использовать sysinstall на живом сервере и я решил попробовать связку fdisk+bsdlabel+newfs.
Используем fdisk+bsdlabel+newfs.
Создаем слайс с помощью fdisk
Чтобы добавить новый слайс воспользуемся утилитой fdisk:
fdisk встречает нас такой речью:
******* Working on device /dev/ad0 *******
parameters extracted from in-core disklabel are:
cylinders=4161 heads=16 sectors/track=63 (1008 blks/cyl)
| Используем данные о цилиндрах, головках и секторах для выяснения размера диска:
4161*16*63 = 4194288 (секторов)
Это число нам понадобится для вычисления размера второго слайса.
Далее fdisk говорит, что
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 2096577 (1023 Meg), flag 80 (active)
| Значит следующий слайс будет начинаться с 2096577+63=2096640-го сектора. И размер его будет составлять 4194288-2096640=2097648 (секторов).
Когда fdisk спросит про редактирование второго раздела мы укажем только что вычисленные данные.
Проверяем присутствие нового слайса:
# fdisk
-- SKIPPED --
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 2096577 (1023 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 1023/ head 15/ sector 63
The data for partition 2 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 2096640, size 2097648 (1024 Meg), flag 0
beg: cyl 32/ head 0/ sector 1;
end: cyl 64/ head 15/ sector 63
-- SKIPPED --
|
# ls -l /dev/ad0s2
crw-r----- 1 root operator 0, 95 Sep 15 19:15 /dev/ad0s2
| Создаем BSD-раздел с помощью bsdlabel
Пишем стандартную метку BSD (на весь раздел):
После этого метка будет иметь такой вид:
# size offset fstype [fsize bsize bps/cpg]
a: 2097632 16 unused 0 0
c: 2097648 0 unused 0 0 # "raw" part, don't edit
| Открываем метку на редактирование:
В открывшемся текстовом редакторе редактируем первую строку с разделом "a". Поскольку на разделе "a" обычно корневая система, на "b" swap, а "с" используется для доступа ко всему слайсу, то изменим букву раздела с "a" на "d". Также нужно прописать "4.2BSD" в поле fstype. Сохранив изменения и выйдя из редактора, должно получится следующее:
# size offset fstype [fsize bsize bps/cpg]
c: 2097648 0 unused 0 0 # "raw" part, don't edit
d: 2097632 16 4.2BSD 0 0 0
| Проверим наличие BSD-раздела:
# ls -l /dev/ad0s2d
crw-r----- 1 root operator 0, 97 Sep 15 19:15 /dev/ad0s2d
| Создаем ФС с помощью newfs
На созданном BSD-разделе создаем файловую систему UFS2 с Soft Updates:
Что ж, сапог оказался в бою надежнее, и я на живом сервере предпочту воспользоваться этой связкой для разбивки диска, а не sysinstall.
Редактируем /etc/fstab
Заранее создав точку монтирования, прописываем новый BSD-раздел в /etc/fstab:
/dev/ad0s2d /newspace ufs rw 2 2
| Проверка перед перезагрузкой
Перед перезагрузкой лучше всего убедится, что с новой файловой системой все в порядке:
# fsck /dev/ad0s2d
** /dev/ad0s2d (NO WRITE)
** Last Mounted on /newspace
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
2 files, 2 used, 506609 free (25 frags, 63323 blocks, 0.0% fragmentation)
| После чего, перезагружаемся и проверяем корректность всего, чего натворили.
Перед работой с живым сервером
Перед началом работы с реальной машиной я предпочел перезагрузить ее. Это дало точное знание того, что если она не загрузится после моих действий с диском, то в этом я сам и виноват.
Также очень хорошей идеей будет сохранить информацию о дисках где-то в безопасном месте, например, на своей рабочей машине. При чем, информацию о ВСЕХ дисках в системе, даже если мы их трогать не собираемся.
Получаем информацию о слайсах:
Получаем информацию о BSD-разделах:
Потом, положив полученный вывод в файл, можно восстановить BSD-разделы командой:
bsdlabel -R /dev/ad0s1 file
| Теперь, в случае чего, у нас будет достаточно информации для восстановления. Остается только пожелать того, чтобы по прямому
назначению эту информацию применять не пришлось.
Вместо титров
Рад видеть дочитавшего до этого места читателя и буду рад в двойне если информация предоставленная здесь оказалась кому-нибудь хоть чем-то полезной.
СпасиБо.
размещено: 2007-09-17,
последнее обновление: 2007-09-17,
автор: bisyarin
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
|
Комментарии пользователей [16 шт.]