Skip to content

Latest commit

 

History

History
149 lines (107 loc) · 4.58 KB

README.md

File metadata and controls

149 lines (107 loc) · 4.58 KB

Обновить ядро в базовой системе

Цель:

Студент получит навыки работы с Git, Vagrant, Packer и публикацией готовых образов в Vagrant Cloud.

Описание/Пошаговая инструкция выполнения домашнего задания:

  • В материалах к занятию есть методичка, в которой описана процедура обновления ядра из репозитория.
  • По данной методичке требуется выполнить необходимые действия.
  • Полученный в ходе выполнения ДЗ Vagrantfile должен быть залит в ваш git-репозиторий.
  • Для проверки ДЗ необходимо прислать ссылку на него.
  • Для выполнения ДЗ со * и ** вам потребуется сборка ядра и модулей из исходников.

Критерии оценки:

✅ Основное ДЗ - в репозитории есть рабочий Vagrantfile с вашим образом.
✅ ДЗ со звездочкой: ядро собрано из исходников.
✅ ДЗ с **: в вашем образе нормально работают VirtualBox Shared Folders.


Vagrant

  1. Устанавливаем Virtualbox
  2. Устанавливаем Vagrant
  3. Собираем базовый образ centos
  
  1. Устанавливаем его в локальный репозиторий
    vagrant box add --name 'avasiliev/cent_7_7' /data/lab/repo/centos-7.7.7-kernel-5-x86_64-Minimal.box
  1. Иницируем проект
    vagrant init
  1. Правим файл Vagrantfile

  2. Поднимаем среду и подключаемся

    vagrant up
    vagrant ssh
  1. Обновляем кеш пакетов
    sudo yum makecache
  1. Устанавливаем треуемые зависимости
    sudo yum install -y ncurses-devel make gcc bc openssl-devel   elfutils-libelf-devel  rpm-build flex bison yum-utils centos-release-scl;
    sudo yum -y --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc;
    echo "source /opt/rh/devtoolset-7/enable" | sudo tee -a /etc/profile;
    source /opt/rh/devtoolset-7/enable;
  1. Загружаем и разархивируем исходные коды ядра
    curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.59.tar.xz --output linux-5.15.59.tar.xz && tar xvf linux-5.15.59.tar.xz 
    cd linux-5.15.59/
  1. Копируем оригинальный конфиг системы
    sudo cp -v /boot/config-$(uname -r) .config
  1. Выполним конфигурацию
    make menuconfig
  1. Запускаем компиляцию и сборку ядра в 8 потоков
    make -j4 rpm-pkg
  1. Устанавливаем собранные пакеты
    sudo rpm -iUv ./rpmbuild/RPMS/x86_64/*.rpm
  1. Перегенерируем загрузочную конфигурацию
[vagrant@otuslinux ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Обновляем загрузчик

    sudo grub2-set-default 0 
    sudo reboot
➜  01_kernel_update git:(hw1) ✗ vssh       

Проверяем версию после перезагрузки

[vagrant@otuslinux ~]$ uname -r
5.15.59

Compile Linux Kernel on CentOS7 how-to-upload-vagrant-box-to-vagrant-cloud

centos-7-extend-partition-with-unallocated-space

parted ---pretend-input-tty /dev/sda resizepart 2 100%;
partx -u /dev/sda; 
pvresize /dev/sda2;
lvextend -r centos_q0/root /dev/sda2
{
     "type": "shell",
     "inline": [
       "sleep 30",
       "sudo yum -y install bzip2",
       "sudo mkdir /media/VBoxGuestAdditions",
       "sudo mount -o loop,ro /home/vagrant/VBoxGuestAdditions.iso /media/VBoxGuestAdditions",
       "sudo /bin/sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run",
       "sudo umount /media/VBoxGuestAdditions",
       "sudo rmdir /media/VBoxGuestAdditions"
     ]
   }