воскресенье, 12 ноября 2017
Короче, камрады, если кто будет собирать LFS, лучше собирайте на отдельном диске или разделе.
Но обо всём по порядку.
читать дальшеВ эти выходные у меня были наполеоновские планы закончить наконец это дрочево. Возможно, прямо в субботу. В субботу пришёл на работу и вперёд! Сначала доустановил проги, которые там рекомендовалось - lynx, openssl, openssh, dhcpcd, sudo, wget, gptfdisk & gparted. Начал с openssl. Оказывается, тесты для него надо выполнять не из-под root. А то будут траблы. Все эти проги входят в книжку BLFS. А для неё нету логов компиляции (наверное, до хрена места занимают) соответственно, если при сборке возникают ошибки, непонятно - это нормально или надо пересобирать.
Тесты openssl под root провалились, под nobody прошли. Дальше ставим openssh. Снова тесты под nobody. Вываливаются с сообщением чо-то там nobody HOME=/dev/null No such file or direcrory. Чо за фигня? Задумался. Оказывается, у nobody не определена домашняя папка. Делать нечего, создал полноценного пользователя user. С домашним каталогом и всеми делами. Там этот ssh создал ключи и тесты отхерачил. Собрал остальное. Там под каждый пакет есть минимум один дополнительный, который тоже надо поставить. Это уже заебало. Апофеозом был gptfdisk, которому нужен какой-то popt, чтобы собрать прогу sgdisk и ICU, чтобы метки писать в unicode. Не знаю, чо за sgdisk, но мож нужное чо-то, поэтому popt скачал и поставил, потому качаю ICU, начинаю собирать, оно медленно собирается, а я и думаю - вот нахер мне в unicode метки писать? Скоко раз я буду разбивать диск с помощью этой проги? Скорее всего 0, а если очень повезёт, то один. На каком языке я буду давать метку? На китайском штоле? Правильно! Скорее всего на английском. Потому что если написать на русском или турецком, в другой программе можно обрести геморрой. Поэтому метки дисков все и пишут на Энглише - не выёбываются. Прервал сборку этой ICU, грохнул исходник и собрал без неё. На всю эту хрень убил несколько часов - пока ошибки разберёшь, пока то-сё.
Теперь мне предстоял квест по переносу содержимого из папки на виртуальный диск. В прошлый раз я установил на виртуалку Арч, сегодня он успешно запустился, правда, не сразу. Я пробросил туда ssh, подцепил второй виртуальный диск и через scp поставил копироваться. Копируется минуту, другую, третью, какие-то файлы пошли двоичные с расширением s2ml. Чо за херня? - думаю. Посмотрел в тырнете - это ж Старкрафт! Оказалось, что в безопасном и защищённом Линуксе эта хрень каким-то образом через /home/lfs/lfs/var/run/media/... вылезла на соседний диск и всё оттуда перекачивает. Уже 12 Гб дерьма!
Прервал, думаю, как так? Вроде отмонтировал всё перед запуском, проверял специально. Проверяю ещё раз mountpoint var/run - является точкой монтирования. Отмонтировал - всё равно является. umount --force, ему пох. Перезагрузился. Всё равно. Таких папки в var две: lock & run. Горят светло-голубым дьявольским огнём. Заходишь внутрь, а там куча файлов и каталогов! Переменовываешь - пох. Перед этим делом я сделал резервную копию lfs - lfs_bckp. Захожу в lfs_bckp/var/run, а там - та же херня! Мистика! Оказалось, это симлинки(ярлыки)! Указывают на /run & /run/lock! Конечно, бля, там будет куча файлов. И ваще, что за умник догадался засунуть в /var симлинки на /run да ещё и /run/lock? Есть же /run в корне, её прекрасно всем видно, хер ли ему не хватает-то? Он бы ещё на десять уровней вглубь бы их захерачил, чтобы точно никто не нашёл! ((
команда cp позволяет не следовать по симлинкам. А в scp такой опции нет. Что делать? Попробуем через общие папки в виртуалке. Проблема в том, что Х-ы подо мной, VirtualBox тоже подо мной, а собирал я под lfs - прав у меня нет на его папку. Решил на корень lfs дать права себе, а дальше мы подмонтируем и в виртуале уже будет root. Подмонтировал, копирую, cp не хочет копировать некоторые файлы. Там суидный бит. А ещё на некоторые файлы права не root:root, а root:какая-то левая группа. Которой нет ни на моей машине, ни на виртуалке. Только в файлах lfs. cp при копировании ставил root:root.
Почитал тырнет - самый верный способ - сделать архив и распаковать его там. Делаем архив:
tar cvf --numeric-owner --same-owner --preserve-permissions lfs_bckp lfs
Сделал, перекачал на виртуалку, распаковал - красота! Всё сохранилось - права, суидные биты и прочее. Смонтировал там всякие /dev /run /sys и прочее, перешёл в chroot, а времени уже до хера. Читаю про конфиг ядра. Открываю, там менюшка неебовая, короче, опять читать надо, что отмечать, что нет, а уже пора домой валить - время 21:30.
Если бы собирал на отдельном разделе этой херни бы не было, сэкономил бы несколько часов. Вот такая у меня потрясающая эффективность! И этот человек хочет учить других Линуксу ыыы. Хотя... Кто умеет - работает, кто не умеет - руководит, кто не умеет руководить - учит. Так что всё по канону.
Во FreeBSD и Windows такого дерьма ни-ког-да бы не случилось! Потому что во Фри нет всяких виртуальных run'ов и прочей хуйни, а в Windows ярлык это блядь просто ярлык! Там можно сделать похожие симлинки, но - не нужно.
@темы:
LFS,
Linux