Online video hd

Free video online

Официальный сайт e-rus 24/7/365

Смотреть видео бесплатно

WeLinux.ru

01.06.09 17:16predator

Linux From ScratchЧасть 1

Это первая статья из большой серии, в которых будет описываться процесс сборки собственного дистрибутива.
И так поехали...

Шаг 1. Для начала нам нужно подготовить диск или, скорее всего, раздел диска, на котором в конечном счете и будет находиться наша система. Как написано в книге, минимальные требования это 1.5 GB свободного места. Но если вы захотите и дальше расширят свою систему, то придется с болью на сердце отдать на неё около 3 GB или более.
Я не буду описывать процесс создания раздела, но скажу что это можно сделать с помощью таких консольных программ как cfdisk и fdisk. Первая предоставляет пользователю псевдо-графический интерфейс и более удобна в использовании в том случае, если вы никогда не пользовались подобными инструментами. Вторая управляется исключительно командами, но при этом имеет большую функциональность, которая, впрочем, нам пока не нужна. И на последок, не забывайте делать резервные копии важных данных!

И так, у нас имеется чистый раздел, и файл в папке /dev связанный с этим разделом, начинающийся с 'sd' (далее идет номер устройства (в виде буквы) и номер раздела).

Все дальнейшие действия делаются от root'а.
Теперь давайте создадим на нашем разделе файловую систему(ФС). Сейчас все пользуются ext3, которая является той же ext2 только с добавлением "журнала", что обеспечивает более устойчивую к сбоям работу...
$ mke2fs -jv /dev/<xxx>

... создаст нужную нам файловую систему на нашем разделе. Также если вы собираетесь использовать swap раздел, создайте на нем соответствуюшую ФС:
$ mkswap /dev/<yyy>

где <yyy> отведенный для swap раздел на диске.
Теперь создадим точку монтирования и смонтируем в неё основной раздел нашей будующей системы:
$ mkdir /mnt/lfs
$ mount -v -t ext3 /dev/<xxx> /mnt/lfs

Если вы хотите отвести отдельный раздел например для /home создайте такую директорию в /mnt/lfs и смонтируйте туда нужный раздел, командой
$ mount -v -t ext3 /dev/<ddd> /mnt/lfs/home

После этого, зайдя туда вы обнаружите каталог lost+found не удаляйте его, он необходим для нормальной работы ФС.

Активируйте swap командой:
$ /sbin/swapon -v /dev/<yyy>

Большинство (если не все) ключей '-v' говорят команде выводить все совершаемые ею действия на экран

Шаг 2. Нам нужно создать необходимые каталоги и получить исходные коды программ.

Следующие команды создадут каталог /mnt/lfs/sources, в котором будут находиться все исходники, а также сделает так, чтобы только владелец файлов мог удалять их, даже если другие пользователи имеют право записи в неё.
$ mkdir -v /mnt/lfs/sources
$ chmod -v a+wt /mnt/lfs/sources

Для скачивания исходников отлично подойдет wget(программа с консольным интерфейсом для скачивания файлов из интернета) c файлом wget-list из development версии книги, в котором содержится список всего необходимого. Всё это весит около 250 МБ. Также все необходимые пакеты можно найти на специальном LFS LiveCD, который содержит все необходимые средства и пакеты, но так как они немного устарели, перейдем в созданный каталог и скачаем исходники с помощью wget:
$ cd /mnt/lfs/sources

$ wget -c -i <путь_к_файлу_'wget-list'>

После скачивания создадим каталог /mnt/lfs/tools ...
$ mkdir /mnt/lfs/tools

... для сборки в нем базовых средств, с помощью которых в дальнейшем соберем все остальное (авторы книги хотят максимально снизить зависимость от основной системы). И создадим символическую ссылку на этот каталог из основной системы just for fun =) (чтобы было удобнее)
$ ln -sv /mnt/lfs/tools /

Шаг 3. Создадим пользователя/группу lfs и настроим окружение пользователя.
$ groupadd lfs
$ useradd -s /bin/bash -g lfs -m -k /dev/null lfs

Первая команда создаст новую запись в файле /etc/group, в котором храниться информация о всех группах пользователей, присутствующих в системе. А вторая в файле /etc/passwd добавит запись о новом пользователе. Описание ключей (в порядке написания):
-s /bin/bash - говорит какая оболочка должна использоваться по-умолчанию.
-g lfs - указывает основную группу нового пользователя
-m - указывает, что нужно создать для пользователя домашний каталог в /home
-k /dev/null - предотвращает копирование каталога /skel со стандартным набором каталогов и файлов с настройками
lfs - имя нового пользователя


Задайте для нового пользователя пароль:
$ passwd lfs

Смените владельца каталогов /tools и /sources на lfs:
$ chown -v lfs /mnt/lfs/tools
$ chown -v lfs /mnt/lfs/sources
... и зайдите в систему от его имени:
$ su - lfs
Ключ "-" сообщает, что нужно запустить новый экземпляр оболочки.

При входе в систему первым что вы обычно видите это оболочка login, которая при запуске читает файлы /etc/profile и .bash_profile, находящийся в домашнем каталоге пользователя. Создадим файл .bash_profile:
1
2
3
cat > ~/.bash_profile << "EOF"
> exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
> EOF
При запуске этот файл очистит все переменные окружения, так как, по мнению разработчиков, они потенциально опасны, за исключением, HOME и TERM и немного изменит стандартное приглашение оболочки bash.
Также в домашнем каталоге нам нужен файл .bashrc, который при запуске читает оболочка bash. В него мы поместим некоторые необходимые нам в будующем переменные окружения:
1
2
3
4
5
6
7
8
9
cat > ~/.bashrc << "EOF"
> set +h
> umask 022
> LFS=/mnt/lfs
> LC_ALL=POSIX
> LFS_TGT=$(uname -m)-lfs-linux-gnu
> PATH=/tools/bin:/bin:/usr/bin
> export LFS LC_ALL LFS_TGT PATH
> EOF
"set +h" говорит bash отключит функцию запоминания местоположения команд, так что он всегда будет искать их в переменной PATH. Это нам очень полезно так, как мы постоянно будем собирать все новые средства.
"umask 022" дает нам гарантии, что все новые файлы будут созданы с правами доступа 644(так что все смогут их читать и выполнять, но не изменять), а каталоги с 744.

В заключение подключим только что созданный файл:
source ~/.bash_profile


To be continue...
+10
booley01.06.09 17:22# +0
Дубль?
xT01.06.09 17:26# +3
Скорее незаметил кнопки "предпросмотр"
predator01.06.09 17:29# +0
По ходу у меня просто инет плохой =(
predator01.06.09 17:27# +0
Ну да, только сильно урезано. PS. блин че так криво встает. Не думал что у меня руки кривые
exelens01.06.09 17:51# +-1
Убил недо дубль, добавил теги и кат
predator01.06.09 19:37# +0
thanks
Username01.06.09 18:08# +1
очень сильно рекомендую писать в большем объеме. Потому как треть странички - ооочень мало, читают люди быстро, пользы немного. Так что moar

На мой взгляд, жирным надо выделить, что весь диск используешь. Алсо, написал бы про fdisk, про то как потом ядро туда закачать и скомпилить. Остальное - во втором этапе
Username01.06.09 18:09# +-1
ну вот, даже и это проглядел. Не диск, а раздел. Выделяй важные места как-нить, мало ли кто попробовать по твоим стопам попробует
predator01.06.09 23:01# +1
сделано
pluton01.06.09 18:31# +2
небольшие ошибки:
Это первая статья из большой серии, в которых

диск или, скорее всего, раздел диска, на котором

Но если вы захотите и дальше расширять свою систему, то

Теперь давайте создадим


кстати, где выполнять все эти команды? есть livecd LFS?
Username01.06.09 19:24# +-1
да
masai01.06.09 19:36# +2
Тоже хочу попробовать собрать свой LFS, но только живой раздел, думаю, лучше для первого раза не использовать. Вместо него отлично сгодится файл, примонтированный как loopback-устройство.
predator01.06.09 19:42# +0
Я и не знал что так можно делать =)
Username01.06.09 19:45# +0
можно брать любой ЛивСиДи, копировать на раздел содержимое, чуть-чуть загрузчик подправить и все
predator01.06.09 19:58# +0
это такой тип установки? да я догадывался
Username01.06.09 20:01# +-1
по сути любой линукс так ставится. Да вообще любая операционка.
lol2Fast4U01.06.09 22:28# +-1
Нет. Debian устанавливает и настраивает пакеты, а не тупо копирует установленные.
Gentoo вообще компилирует из исходников.
Username01.06.09 22:38# +0
установка (и настройка кстати) любого пакета происходит копированием нужных файлов в нужные места.
В дебиане приходит архив, распаковывается по нужным местам.
В генту приходит архив, распаковывается, компилируется, копируется нужное по нужным местам. Большой разницы нет.
exelens01.06.09 22:50# +-1
Расскажи об этом отдельным топиком?
Username01.06.09 22:59# +0
хм, после диплома можно, но смысла особо не вижу
exelens01.06.09 23:08# +-1
Интересно
partizan1301.06.09 20:49# +0
Как отом на него(лупбэк файл) установить загрузчик?
fun01.06.09 20:59# +0
Т.к. установка загрузчика один из последних этапов, его можно провести и на настоящем разделе (после dd с лупа), могу ошибаться.
Username01.06.09 21:00# +0
а зачем именно с лупа делать дд?
fun01.06.09 21:03# +0
ну, не дд, cp -dir, суть то неизменится. просто дд заодно и структуру фс копирует.
Username01.06.09 21:09# +0
ну во-первых да, и самое главное, размер фс тоже. Так что надо быть внимательным, чтобы не уменьшить себе хард до флешечки.

а как ГРУБ прочтет твой loop? он ведь читает таблицу разделов, там не будет никакого лупа.

ЗЫ сначала не врубился, что ты собираешься делать
fun01.06.09 21:19# +3
Поясню (может кто-то еще не понял):
Идея в том что бы не ресайзить разделы, а просто создать некий файл допустим lfs.img , создать на нем ext3 фс, и примонтировать как обычный раздел, и дальше уже извращатся с ним, а когда система созреет перенести ее на реальный раздел. Далее как обычно груб-инстал /dev/sdX.
Username01.06.09 21:42# +-1
понятно
partizan1301.06.09 21:45# +0
>>когда система созреет перенести ее на реальный раздел.

Интересует установка загрузчика без переноса.
Можно конечно использовать LiveCD + Qemu, но это костыль.
fun01.06.09 21:51# +0
/dev/loop/0 does not have any corresponding BIOS drive.
masai01.06.09 22:24# +1
А если /boot будет реальным, а / — loopback? Такое возможно?
Username01.06.09 22:40# +0
по идее нет, даже если ядро запихать в бут, все равно в грубе нужно указывать /, а он не будет доступным. Правильно я понимаю? кто знает ответ, подскажите
masai01.06.09 22:50# +0
Да там особо и пихать не надо. У меня оно сразу в /boot лежит. В этой статейке в fstab делается запись:

/dev/loop0              /               squashfs        ro,defaults             0 0


А при загрузке ядру передаются параметры:

looptype=squashfs loop=/livecd.squashfs


Может, что-то подобное можно и в нашем случае сделать?
Username01.06.09 22:58# +-1
тогда у fan'а просто опечатка
masai01.06.09 23:00# +0
Почему? Никто же не предлагает /boot в файле держать.
Username01.06.09 23:00# +-1
/dev/loop/0 does not have any corresponding BIOS drive.
я про это. слэш не нужен
fun01.06.09 23:12# +1
Это не опечатка. Оно просто так выводит.
partizan1301.06.09 23:35# +0
Тут некоторым интересен способ запихнуть /boot в файл.

ЗЫ: за ссылку со способом спасибо. буду пробовать.
fun01.06.09 22:52# +0
Вообще корень мононтируется после инициализации ядра, так что теоретически это возможно, если loop модуль подгружать до монтирования.
ЗЫ Вспомнил что где-то давно читал о том что своп раздел можно делать в виде раздела, а можно и в виде отдельного файла, думаю особой разницы нет своп ли это иль корень, главное что бы ядро уже в оперативе сидело. Сумбурно, но ладно.
Username01.06.09 22:57# +-1
своп-то он все-таки физический раздел, в него и / можн записать
masai01.06.09 23:00# +0
В общем, нужен эксперимент! :)
masai01.06.09 22:21# +3
Загрузчик можно установить так. А потом испытывать линукс в виртуалке. :)

Не знаю, может можно добавить строчку в реальный menu.lst и, если /boot на другом разделе, использовать сделанный loopback для загрузки. В конце концов, что-то подобное проделывает убунтовский wubi и livecd со squashfs. Но это только догадки, которые я не проверял.
cppmm02.06.09 14:54# +0
Там много нафлудили про loop и livecd. :)
Вообще, имхо, самый простой вариант сделать всё на любой установленной системе в chroot'е. Ни дополнительных проблем в переносом образа на реальный винт, ни переразбивки разделов. Это если уж страшно сразу в "боевых условиях" пробовать.
exelens02.06.09 15:00# +-2
Можешь описать подробно сам процесс?
cppmm02.06.09 15:43# +0
хм... Можно попробовать, но это будет просто пересказ gentoo-handbook нескольких глав из gentoo-handbook.
predator02.06.09 15:28# +0
Да можно по подробнее, как мне, так ничего сложного в урезании раздела нет. и это вполне безопасно
predator01.06.09 20:01# +0
не знаю кто разработчик, но почему нельзя сделать красную строку?
Username01.06.09 20:10# +-1
а пробелами или табом?:)
Username01.06.09 20:10# +-1
да, нельзя:)
Kraplax03.06.09 01:02# +0
Ну-ка, ну-ка...
 Смотрите-ка! есть красная строка :D
booley02.06.09 23:23# +0
nvbn разработчик :)
Kraplax03.06.09 01:04# +0
попробуйте &nbsp; ставить в тексте, чтобы пробел был. Возможно, есть последовательность и для символа табуляции, но я ее не знаю, проверить не могу. А неразрывный пробел - пожалста :)
lol2Fast4U01.06.09 22:12# +2
>IDE диски начинаются с букв 'hd', а SCSI с 's'
Привет из будущего, у нас тут новые ядра, в них все диски с 'sd' начинаются.
predator01.06.09 22:20# +0
и правда =)
Kraplax03.06.09 01:06# +0
Я не уверен, но разве CD/DVD приводы не являются SCSI по своей натуре? Если да, то они как раз начинаются на 's' (/dev/sr0).
polatov02.06.09 10:47# +0
Пост плюсую, но имхо мало )
Пробовал ставить сам, но дошел лишь до установки binutils. Надо еще раз попробовать.
"Ключ "-" сообщает, что нужно запустить н@у@вый экземпляр оболочки." Ошибка.
predator02.06.09 11:49# +0
Сегодня будет вторая.
kampfusbeke02.06.09 15:59# +0
по-моему нет смысла выкладывать по кусочку... если уж ставить лфс - так целеустремленно ;) когда собираешь - за несколько часов можно почти закончить пятую главу. еще за пару дней - закончить все. и выкладывать надо, как минимум, большие куски.
а вообще, не зная английского, сложно во всем этом разобраться имхо. книга-книгой, а чем дальше - тем там больше сслылок на другое, что тоже стоило бы почитать... все ведь, пожалуй, переводить не будешь?
predator02.06.09 16:03# +0
Буду =)
kampfusbeke02.06.09 16:09# +0
ну, тогда вдвойне молодец ;) ссылок там действительно очень много, кое-какие на тексты подлиннее самого бука даже ;) но все там переводить, может, и не надо, а кое-что уже может и переведено. я, возможно, в июле-августе смогу тоже помочь перевести, но пока точно не уверен.
predator02.06.09 16:26# +0
Перевод будет скорее всего в виде вики движка. Так что всех милости просим =)
predator02.06.09 16:27# +0
черт, на вики движке =)
booley02.06.09 20:13# +0
Улыбнулся :) на вики-движке - это интересно :) попробую поучавствовать
cppmm02.06.09 20:24# +0
Завтра будем начинать.
Хостинг для движка предоставляет уважаемый NucleoFag, так что все громко говорим ему спасибо. :) Сейчас просто там кое-какие проблемы с движком. Как починят, я подготовлю инструкцию по особенностям совместного перевода с помощью wikimedia(есть простая отработанная на нескольких проектах схема).
Когда всё будет готово, сообщим где-нибудь здесь, я думаю. Ну или в личку(мне или predator'у) стучитесь.
Единственное замечание - посовещавшись с NucleoFag, мы решили, что редактирование будет разрешено только зарегистрированным пользователям.
NucleoFag02.06.09 23:22# +0
Верно, все грамотно сказал. Я думаю пост замутим для этого. С описанием что, где и как. Спасибо собственно. С предложениями и ко мне можно и нужно=)
booley02.06.09 23:24# +0
Решение правильное, чтоб не троллили.

А по поводу самого движка, насколько я знаю, есть спецдвиги для переводов :)

//Записывайте меня в переводчики!
Kraplax03.06.09 01:09# +0
А почему не поднять infinote сервер и не редактировать в специальных прложениях? Или, например, тот же etherpad или googledocs - очень даже удобные вещи.
NucleoFag03.06.09 01:12# +0
Потому что потом надо будет где то на виду оставить. Да и не только этот проект...
djevan03.06.09 19:04# +0
Эх... Помниться тоже решил собрать дистрибутивчик с нуля) Самой полезной книгой оказалась gentoo handbook)

Top блогов (все)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Top пользователей (все)
Топ пользователей Топ блогов
Новенькие: nikebl, renya, micro, vanDake, pasha220992
welinux.ru
Идея сайта exelens; Движок 0byte, разработчик nvbn; Дизайн - Astramak

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн