Настройка RepairDisk: путь к LFS

Часто нам приходилось восстанавливать систему с LiveCD, и в какой-то момент в процессе мы обнаруживали, что у нас не хватает инструмента, и когда мы хотим его установить, LiveCD OS сообщает нам, что на нем закончилось место и чеснок и вода (чтобы отвали и держаться).

Эта проблема действительно пришла ко мне из-за перехода в LFS (Linux с нуля), который является руководством (НЕ самим дистрибутивом) по установке собственного Linux. Суть этого «распределения» в том, что с любого LiveCD и с соответствующими инструментами вы загружаете код ядра и другие инструменты для создания своей собственной системы (компилируя все понемногу). Если вы хотите следовать пошаговому руководству, вам понадобится несколько инструментов и компиляторов, и нет liveCD со всем, поэтому вам придется настроить один.

Давай сделаем это. Мы будем использовать SystemRescueCD, который предлагает довольно обширную среду на основе Gentoo.

В нашем примере (установка Linux с нуля по книге Linux From Scratch) нам не хватает программ Bison и Makeinfo, поэтому мы собираемся создать новый ISO-образ этого диска, но с новыми инструментами.

ВНИМАНИЕ: Gentoo - это дистрибутив, который компилирует на месте все пакеты должны быть установлены, поэтому процесс добавления и обновления программ идет медленно.

Хотя используется менеджер пакетов (например, apt-get в Debian), вместо загрузки пакетов загружается исходный код для его компиляции на вашем компьютере.

Для этого вам понадобится раздел Linux (например, ext4) с минимум 1.5 ГБ свободного места, хотя рекомендуется больше. Если вы не хотите возиться со своими разделами, воспользуйтесь виртуальной машиной. Конечно, желательно, чтобы на разделе было несколько гигов, так как при компиляции, установке, синхронизации репозиториев ... необходимо временное пространство; Я советую использовать раздел подкачки 8G + 2G (с 4G + 1G этого должно быть достаточно, но мы можем вас заверить, если RAM / swap отсутствует, процесс будет еще медленнее).

Предполагая, что вы создали виртуальную машину с диском 10 ГБ, вы запускаете ее, говоря, что она загружается с недавно загруженного SystemRescueCd. Оказавшись внутри, мы разделяем с помощью fdisk (если вы запустили графический сеанс, вы можете сделать это с помощью gparted, но цель этого сообщения - научить пользоваться базовыми инструментами). fdisk - это интерактивная команда:

  • с опцией "n" создаем новый раздел
  • с опцией "t" мы меняем тип файловой системы, которая будет помещена в раздел
  • с опцией «w» записываем на диск
  • с опцией «q» выходим без записи изменений

Когда мы используем параметр «n», он дает нам несколько вариантов, все время мы будем использовать значение по умолчанию, за исключением установки последнего сектора в первом разделе, который нам нужно будет написать «+ 8G», таким образом указывая программе что мы хотим, чтобы наш раздел занимал 8 ГБ.

При создании второго раздела мы будем использовать параметры по умолчанию, так как остальное пространство будет занято. Кроме того, чтобы сообщить fdisk, что второй раздел будет относиться к типу swap, используйте параметр «t» (шестнадцатеричный код для swap - 82). Интерфейс выглядит так:

% fdisk / dev / sda Команда (m для справки):

Как только все будет сделано, мы используем параметр «w», чтобы записать изменения на диск и выйти.
Пришло время отформатировать разделы. Мы начнем со свопа, чтобы сразу же им воспользоваться:

% mkswap / dev / sda2% swapon / dev / sda2

Раздел подкачки уже отформатирован, и с помощью команды обменять мы начали его использовать. Теперь форматируем первый раздел в ext4:

% mkfs.ext4 /dev/sda1

Мы можем начать выполнять шаги, описанные в http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, вот перевожу / описываю их с нечетной аннотацией.

Мы монтируем раздел на его место (LiveCD уже поставляется с подготовленной папкой / mnt / custom, где должен быть смонтирован раздел, в котором мы сделаем соответствующие изменения). Также после монтирования нам нужно будет извлечь файлы с диска, это достигается с помощью уже подготовленного скрипта. Скрипт займет некоторое время (так как он сбрасывает сотни мегабайт памяти). Если вы хотите проверить, что он действительно работает, перейдите на другой терминал (например, с помощью Alt + F4) и выполните команду df -h.

% mount / dev / sda2 / mnt / custom% / usr / sbin / sysresccd-custom экстракт

Если вы теперь перейдете в / mnt / обычай / customcd, вы увидите несколько папок. В / mnt / custom / customcd / файлы корневая файловая система найдена. Пришло время вырезать будущую новую систему. Здесь я собираюсь поместить команды, более подробную информацию о chroot вы можете увидеть этот учебник я написал месяц назад

% mount -o bind / proc / mnt / custom / customcd / files / proc% mount -o bind / dev / mnt / custom / customcd / files / dev% mount -o bind / sys / mnt / custom / customcd / files / sys% chroot / mnt / custom / customcd / files / bin / bash # gcc-config $ (gcc-config -c)

Мы уже находимся в chrooted системе, которая будет системой LiveCD после ее загрузки. Мы установим недостающие пакеты (bison и texinfo) с помощью команды появляться (кто обрабатывает посылку волок из gentoo).

Сначала синхронизируем дерево портежей (эквивалент apt-get update)
# emerge-webrsync ПРИМЕЧАНИЕ: мы используем эту команду вместо «emerge –sync», потому что она быстрее, так как загружает tar-пакет из Интернета. Этот шаг необходим, потому что, если вы не загрузитесь, он автоматически запустит –sync, замедляя его.

После синхронизации дерева портежей мы можем приступить к установке пакетов:

# emerge sys-devel / bison # emerge sys-devel / texinfo
bison потребуется время для компиляции, наберитесь терпения

Оставляем chroot:# exit

Мы размонтируем "/ proc", чтобы новые установленные пакеты сохранялись в squashfs. Мы также размонтируем «/ dev» и «/ sys», чтобы потом не забыть
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

Поскольку у нас уже есть подготовленная новая файловая система сквоша, мы создаем ее с помощью следующей команды
% /usr/sbin/sysresccd-custom squashfs
Если мы хотим добавить файл в образ ISO, но хотим, чтобы он находился за пределами squashfs, мы должны поместить его в папку «/ mnt / custom / customcd / isoroot»

% cp -a my-files /mnt/custom/customcd/isoroot

На этом этапе официальное руководство сообщает вам, что вы можете настроить раскладку клавиатуры на загрузку с клавиатурой по умолчанию (например, «es» для испанских клавиатур). Но при выполнении нескольких тестов скрипт, который они использовали для меня, не сработал, и это привело к ошибке при загрузке ядра, поэтому я пропущу этот шаг.

Настал славный момент, теперь мы можем сгенерировать новый образ ISO с помощью нашей настроенной системы!
% /usr/sbin/sysresccd-custom isogen my_srcd
«My_srcd» - это имя, которое мы даем тому, вы можете называть его как хотите. Изображение сохраняется в «/ mnt / custom / customcd / isofile», кроме того, создается файл .md5 🙂

Если вы работаете с виртуальным диском, остается важный шаг: извлечь ISO-образ виртуальной системы. Есть несколько способов сделать это, я объясню простой (в VirtualBox), чтобы избежать необходимости устанавливать «гостевые дополнения» или что-то подобное.
Мы будем использовать клиент для получения файла через туннель ssh. Для этого мы должны сначала настроить гостевую систему с паролем root. Сервер ssh запускается автоматически, все равно перезапускаем его на всякий случай.
% passwd
% /etc/init.d/sshd restart

Нам нужно настроить переадресацию портов виртуальной машины. В VirtualBox это делается следующим образом:

  1. Вы получаете доступ к конфигурации виртуальной машины
  2. В разделе сети вы уже настроили адаптер в NAT
  3. Ищите вариант переадресации портов
  4. Вы добавляете новое правило с единственными параметрами «порт хоста» и «гостевой порт».
  5. host = 3022 и guest = 22

Таким образом, мы добились того, что порт 3022 нашего ПК соответствует 22 виртуальной машине. Запускаем клиент Filezilla:

  1. В параметре сервера пишем: sftp: // localhost
  2. В параметре username пишем: root
  3. В параметре пароля мы помещаем тот, который используем в «passwd»
  4. В параметре порта пишем: 3022
  5. Нажмите «Быстрое подключение»

Если все прошло хорошо, слева мы можем перемещаться по нашему ПК, а справа - по виртуальной машине. Достаточно зайти (на виртуальной машине) в папку «/ mnt / custom / customcd / isofile» и перетащить ISO-образ в желаемое место на нашем ПК.

!! Поздравляю !! Если все прошло хорошо, у вас есть готовый образ ISO с настроенным SystemRescueCD и готовый к загрузке с компакт-диска, USB ...


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Лев сказал

    Какое хорошее руководство, несколько сложное, но очень полезное.
    Хороший вклад.

  2.   Лепер_Иван сказал

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

  3.   Карлос Санчес сказал

    Привет woqer, очень хороший пост!

    Я работаю с LFS несколько лет, и я создал свою собственную iso, которая может служить вам, в ней есть все необходимое для компиляции, поскольку это LFS. 😀 Надеюсь, это будет вам полезно

    http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso