«Можно ли создать произвольную схему разметки диска на виртуальном сервереЭ» Этот вопрос однажды возник в моей голове.
Скажу сразу, речь идет о случае, когда доступа к гипервизору нет (иначе было бы слишком просто).
На первый взгляд может показаться, что вопрос неразрешим.
Фактически, чтобы переразбить раздел, вам нужно его размонтировать.
В случае домашних компьютеров для этого используется Live{CD,USB}.
А если в вашем распоряжении только ssh? Пара секунд размышлений и я нашел решение.
Казалось, на этом можно успокоиться: сам придумал проблему, сам ее решил.
Но потом я в шутку задал тот же вопрос коллеге, будучи уверенным, что и у него не возникнет затруднений в решении вопроса.
Результаты меня удивили.
Опросив других, выяснилось, что все респонденты были уверены, что переразметить диск на VPS невозможно.
Дальше всех пошел только один парень, который сказал: «Можно, но не корневой раздел».
Если вы тоже не знаете решения данной проблемы или просто хотите посмотреть пример реализации, добро пожаловать в статью!
Зачем вся эта суета?
По большому счету, конечно, это не обязательно.Сервер все еще работает. Но, пожалуй, у каждого свое видение «правильной» поломки, которое может не совпадать с тем, что существует на самом деле.
Мой виртуальный сервер с CentOS 6.6 x86-64 имел следующую схему:
По моей философии 200 метров на загрузочный раздел — это пустая трата.# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda3 24G 1,7G 21G 8% / tmpfs 371M 0 371M 0% /dev/shm /dev/xvda1 194M 29M 156M 16% /boot # free -m .
Swap: 511 0 511
Я обычно использую 32 МБ (из любви к «круглым» цифрам).
Мне этого хватает для размещения 4 ядер и еще осталось.
Вполне естественно, что хотелось бы более эффективно использовать пространство виртуального сервера — убрать лишнее из /boot, присоединить к /.
И заодно сменить ОС.
Компания-владелец виртуального сервера предоставляет фиксированный список возможных операционных систем.
К сожалению, в него не входит мой любимый Gentoo. Но.
Означает ли это, что я не могу его использовать?
Ответ на главный вопрос жизни, Вселенной и этой статьи
Так как же переразбить корневой раздел? Специально для тех, кто не догадался сразу, я оставил подсказки выше.Да, именно так – нас спасет своп.
Вот общая схема для тех, кому нужен только сам принцип и не нужны пояснения:
- избавляемся от свопа – получаем свободный раздел;
- создать на нем ФС;
- облегчаем текущий корневой раздел до размера файловой системы на бывшем свопе;
- скопируйте данные в новый раздел;
- перенести загрузочный раздел;
- вращаем освободившиеся участки по своему желанию;
- При необходимости повторите шаги по переносу root до полного удовлетворения.
Как все это сделать?
Для начала давайте отключим раздел подкачки и создадим на нем файловую систему.Затем мы удалим строку об этом из /etc/fstab. Теперь интересный этап — облегчение ОС.
Само собой, если у вас уже есть какие-то данные на сервере, берите их.
Однако этого, скорее всего, будет недостаточно.
В моем случае раздел xvda2 (где был своп) имел размер чуть больше 0,5 ГБ, а ОС, которую я получил после создания сервера, чуть больше 1,5 ГБ.
Немного не хватает. Чтобы уменьшить размер, я вырезал все приложения, о которых знал и которые не влияли на функцию:
- загрузка сервера;
- изменения раздела;
- создание ФС;
- работа с сетью;
- соединения через SSH.
Сохраните конфиги, если хотите, а потом снесите все эти mail-web-ftp-dns-other-servers. Но даже без предустановленного обвеса на все случаи жизни система в настоящее время стоит очень дорого.
Чтобы получить список всех установленных программ в Debian, запустите: # dpkg --list
А в красношапочной семье: # yum list installed
Метод прост: сначала пройдитесь по всему списку и удалите то, что вам известно, затем переберите каждый элемент списка отдельно и посмотрите на его зависимости.
Посмотрите внимательно на список приложений, которые будут удалены вместе с выбранным, и проверьте, не повлияет ли их удаление на какой-либо из пунктов списка выше.
Не перестарайся! Я настолько увлекся чисткой системы, что даже не заметил, как остался без всякого текстового редактора.
Так как мне было лень устанавливать их заново, пришлось редактировать все файлы конфигурации с помощью sed. Ощущения были.
интересными.
Хорошо, если у вас есть возможность в любой момент создать резервную копию образа вашего виртуального сервера и выполнить восстановление из него.
В противном случае будьте вдвойне осторожны.
Кстати, есть еще две возможности немного подкорректировать место: — первым делом измените размер раздела /boot, чтобы освободившееся место добавлялось в раздел подкачки; - и более экстремальная очистка - удаление (а еще лучше перенос на другой компьютер) содержимого /usr - всех этих doc/, man/, файлов часовых поясов, шрифтов и т.д. Будьте осторожны при выполнении этих действий и не приступайте к ним.
кроме случаев крайней необходимости.
Но предположим, что вам все равно это удалось.
Скопируйте все содержимое текущего корня в новое место.
И не забудьте поправить значения в /etc/fstab и в конфигурации загрузчика.
Вы также можете переместить каталог /boot в новый раздел, если решите изменить размер загрузочного раздела (конечно, если /boot находится в отдельном разделе).
С Grub2 проблем не было.
Но устаревшая версия Grub (также известная как Grub 0.97) не подозревает, что имена разделов могут быть чем-то вроде /dev/xvda2. Давайте научим его этому.
В файле /sbin/grub-install вам нужно найти строку: tmp_disk=`echo "$1" | sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
И ниже: tmp_part=`echo "$1" | sed -e 's%.
*/[shv]d[a-z]\([0-9]*\)$%\1%' \
В моем случае это строки 99 и 105, но я не исключаю, что в разных дистрибутивах могут быть небольшие различия.
Замените эту часть: [shv]d
Таким образом: x[shv]d
Теперь проблем с установкой grub 0.97 не будет.
Если при удалении программ, установке загрузчика и редактировании конфигурационных файлов ошибок не было допущено, то после перезагрузки вы получите систему, работающую на одном небольшом разделе.
Теперь достаточно удалить старый корневой раздел (в моем случае xvda3) и в конце освободившегося места создать новый.
Еще раз перетащив туда корень, мы получаем возможность менять разделы с самого начала диска.
Так как я решил заодно сменить ОС, то вместо копирования туда-сюда файлов корневого раздела я могу сразу создать файловую систему будущей ОС в новом месте.
К счастью, Gentoo не использует все эти новомодные графические установщики.
Для того, чтобы обосноваться на новом месте, ей достаточно распаковать чемоданы (архив третьего этапа — это минимальное окружение ОС), подправить несколько конфигов и выполнить несколько команд. К сожалению, я не знаю, будет ли этот подход работать с другими дистрибутивами.
Изменение разделов
Будьте внимательны при работе с разделами.Ядро не будет знать о внесенных вами изменениях, пока вы не перезагрузитесь или не сообщите ему об этом.
Это можно сделать с помощью команды partprobe из пакета parted. Но что интересно, если в CentOS 6.6 x32 нам удалось сделать все без перезагрузок, то, используя ту же версию ОС, но 64-битную, оказалось, что partprobe не смог сообщить ядру об изменениях в таблице разделов.
и пришлось перезагрузиться.
Убедитесь, что у вас всегда где-то есть загрузчик и что его конфигурация правильна с учетом текущей схемы разметки.
Каков результат?
Если при заказе VPS вы не можете повлиять на схему разбивки, это не значит, что вы не сможете реализовать на сервере свое видение «правильной» схемы.Я изменил размер загрузочного раздела, оставив необходимый минимум и выделив дополнительные МБ для более необходимых целей.
Я сделал два дополнительных раздела.
И поменял ОС на ту, что была нужный меня, и не выбирая из тех, кто предложенный мне.
Однако, если вы решите повторить, я настоятельно рекомендую вам сначала проконсультироваться с компанией, предоставляющей вам сервер, чтобы узнать, повлияют ли планируемые вами изменения на ее обслуживание.
Возможно, какая-то программа или сценарий на физическом сервере, обслуживающем ваш VPS, использует очень специфические таблицы разделов.
Теги: #настройка Linux #Gentoo #vps #разметка диска #чем заняться на выходных
-
Новости Поисковой Оптимизации Для Веб-Сайта
19 Oct, 24 -
Удаление Схд Netapp Из Кластера
19 Oct, 24 -
Метро 2033
19 Oct, 24 -
Drupal 7 И Меню Ajax
19 Oct, 24