Книга за Debian GNU/Linux

25 December 2004

Версия 0.3cvs


Copyright © 2002-2004 Александър Велин, Георги Данчев, Дамян Иванов, Делян Делчев, Димитър Андонов, Никола Антонов, Никола Колев, Николай Манчев, Огнян Кулев, Пламен Тонев, Стоян Жеков

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''.


Contents

Въведение

За този документ и потребителите

Достъп до документа

Официалния сайт на книгата е http://www.debianbookbg.org/, където ще се публикуват официалните издания. Проекта е преместен на https://openfmi.net/projects/debian-book-bg като кода се поддържа в Subversion хранилище. Най-добре би било, ако всички потребители използват направо кода от това SVN-хранилище, синхронизирайки своето локално копие от него и компилирайки по свое собствено желание различните изходи като HTML, при който всичко в един файл, или HTML, разбит по глави, PDF и т.н. Така всички бързо и лесно ще се сдобиват с последните промени в хранилището и ще могат да добавят свои допълнения, когато намерят за добре.

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

Накратко за съдържанието на книгата

Тази книга се разработва в свободното време с помощта на LATEX и SVN. Предназначена е за бързо нахвърляне, съхранение и споделяне на информация между множество потребители, и то на български език, за неща, уникални за Debian, които може би не се срещат като функционалност при други системи или са залегнали лошо като замисъл и/или реализация. Това не значи, разбира се, че Debian е безгрешен. Предполага се, че имате поне основна представа от структурата и основните особености на Debian, можете да работите с най-важните инструменти за управление на системата. Интересно е да се споделя опит и знания за възможностите, които може и да не се срещат в официалната документация на Debian. Документът към момента се опитва да стане по-добър от стилистична и дизайнерска гледна точка, така че подобна помощ, а както и всякакви конструктивни критики и коментари по съдържанието, се приемат с удоволствие. Така ще е поне докато махнем и последното FIXME, включително и това. Целта не е точно описание на конкретен Release на Debian, това е преходно и е описано на доста места, затова ще гледаме малко по-глобално. Важното е да се посочат идеята и дизайнът, които са разширявани, допълвани, тествани и доказали своята гъвкавост и работоспособност през годините, а самата имплементация може да се разгледа в съответните изходни кодове.

Предполага се, че имате някаква идея какво е Linux и GNU/Linux, но все пак силно препоръчително е да се прочете внимателно и задълбочено Linux kernel mailing list FAQ, където се изясняват неща по принцип, като не е нужно да се записвате в този списък, разбира се. Ако не разбирате или не ви е ясно нещо от гореспоменатото, то се препоръчва да започнете първо с:

които дават добро общо въведение в средата на GNU/Linux.

Ще е добре да имате Debian наоколо, инсталиран на хард диска на някоя машина, или ако нямате такава с инсталирана Debian подръка, можете да заредите на произволна x86 машина (PC) Knoppix от CDROM (без да предприемате каквито и да било интервенции по хард дисковете, виж по-долу), за да е по-лесно схващането на нещата, защото само с четене от този документ е доста по-трудно за разбиране. Може би ще ви е интересно да прочетете Историята на проекта Debian (от пакета debian-history) и отговорите на Често Задаваните Въпроси за Debian (от пакета doc-debian).

Също така е добра идея да се запишете в:

Други книги за Debian на английски език

Следните книги могат свободно да се четат през Интернет:

Защо Debian GNU/Linux

Debian GNU/Linux не е току-що появила се дистрибуция на операционна система, но като че ли не е достатъчно популярна и позната сред новите потребители. Затова този документ е предназначен предимно за тях, но също и за по-напредналите, които въобще не подозират какво се крие зад Debian GNU/Linux.

Нека направим и уговорката, че това изложение е направено от следната позиция:

Основни понятия и команди

Общи понятия

Компютър, хардуер и софтуер

Да започнем с най-простото. Компютрите са създадени, за да си вършим по-добре работата. Това се постига с използването на най-различни програми, които носят общото име софтуер. Програмите доставят функционалността, която се очаква от компютъра. Това обаче не е физическият компютър, който виждаме. Този физически компютър, заедно с всички прикачени към него устройства, наричаме хардуер.

Софтуерът и хардуерът са двете части, които заедно образуват това, което наричаме компютър. Софтуерът е нещо като "`духа на компютъра"'.

Операционни системи

В миналото програмите са се грижили за цялото общуване с хардуера, което е било тежка задача. Части от програмите са се повтаряли в толкова много програми, че те се отделяли в библиотеки.

Това обаче не се оказало достатъчно. Нужно било постоянно в паметта да стои програма, която да се грижи за връзката между програмата и другите програми, както и между програмата и периферията (клавиатура, екран). Тази програма се нарича ядро, защото стои в центъра на дейността на компютъра и всичко останало зависи от нея.

Комбинацията от ядро, стандартни библиотеки и много често използвани програми се нарича операционна системи. Операционната система дава основния тон на цялото общуване между човек, програми и хардуер.

Дистрибуции на софтуер с ядрото Linux

Пакети

Това, което обикновено се нарича "`програма"', в света на операционните системи с ядро Linux, както и във вариантите на BSD, се нарича пакет. Пакетът е основната единица за функционалност в операционната система. Затова най-важните задачи на една операционна система са инсталирането и премахването на пакети.

Дистрибуции и пакетни системи

Въпреки общото име "`пакет"' има много различни начини да се реализират действията с пакетите. Така се образуват пакетните системи. Допълнително диференциране се получава от начините на пакетиране, които могат да бъдат различни за една и съща пакетна система. Именно тук стигаме до понятието дистрибуция, което значи организирано пакетиране на програми, при което полученият резултат се разпространява.

Например дистрибуцията Red Hat използва пакетната система RPM, също както дистрибуцията Mandrake. Въпреки общата си пакетна система тези дистрибуции са различни, защото различни организации пакетират програмите, може би даже по различен начин.

Някои термини и понятия

Нека да дадем и яснота и по някои понятия или термини, повечето от които са въведени от проекта Debian, но се ползват и от всички останали:

Понеже Debian е платформа, използвана много интензивно от програмисти или въобще разработчици на софтуер, в доста случаи един и същи човек е и upstream developer и debian maintainer. Има и доста софтуер, който е разработен специално за проекта Debian, но може да се ползва и от всички останали, разбира се.

Проблеми

Проблеми и задачи при управлението на софтуера

При дистрибутирането на какъвто и да е софтуер, проблеми и задачи за решаване винаги ще има. Нещата могат да се подхванат наистина издълбоко така, че и най-малките подборности и крайни случаи да бъдат отчетени и обработвани по определен начин. Важното е потребителят да не бъде принуден да използва точно определена версия на даден софтуер, ако това не се налага, а да му се даде възможността да маневрира в рамките на безопасното и надеждното. Или с други думи казано, взаимовръзките между различните части на Вашата система могат да бъдат контролирани в полза на потребителя. В следващите глави на тази книга ще се опитаме да обясним как се решава всичко това в света на Debian.

Потребителски проблеми

Недоволни или недоразбрали потребители винаги ще има. Ето няколко примера, които може вече и да не са актуални:

Оплаквания от объркани потребители, които в повечето случаи са основателни:

Решения и предложения за подобрения

Бърз преглед, без инсталация

Knoppix LiveCD

От Knoppix в паметта...

Knoppix е самостоятелен проект, отделно от проекта Debian, но много удобен и бърз начин човек да се запознае с GNU/Linux, и в частност с доста вкултурен Debian GNU/Linux, инсталиран на CDROM.

Поради това, че проектът Debian засега не предоставя официално готови LiveCD, то се препоръчва като такова да се ползва именно Knoppix. По-добро решение трудно ще бъде измислено, като освен това може да послужи и като инсталатор. От друга страна има пакет, с чиято помощ можете сами да си направите LiveCD, съдържащо точно това което ви трябва. Това е пакета dfsbuild, като за разлика от готовите Knoppix имиджи, с него можете да си направите и LiveCD и за архитектури различни от x86. За да се запоснаете с Knoppix ви трябва само x86 PC, което да може да зарежда операционна система от диск в CDROM-устройството, или пък ако не може да boot-ва от CDROM, да има флопи дисково устройство, за да заредите от него с boot-ващата дискета на Knoppix, която може да създадете от флопи имиджа, който е на CDROM-диска. Не е необходимо да инсталирате нищо на хард диска (но при желание и това може да стане), дори може да няма и харддиск на машината. Авторът на тази инсталирана на CDROM система ползва пакети от Debian, като освен това е добавил доста код от себе си за разпознаване на хардуера и решаването на задачи, специфични за системи, инсталирани на read-only медия, каквато е CDROM-дискът, като root filesystem, която се зарежда в RamDisk, т.е. в паметта, заключени потребителски акаунти и много други.

Повече обяснения за тази система върху CDROM ще намерите в документацията. Добре ще е да се запознаете с цялата документация, за да можете да използвате повече възможности, предлагани от Knoppix LiveCD. Обърнете внимание на:

Специфичните за Knoppix сорсове, отнасящи се до разпознаването на хардуера, можете да получите от http://developer.linuxtag.net/knoppix/sources/, тези сорсове са пакетирани като пакети за Debian (.debs) за i386 и са достъпни от http://developer.linuxtag.net/knoppix/i386/. Доста от този код на автора е оценен като полезен и е приет в официалния Debian архив. Форумът и пощенския списък debian-knoppix са добър източник на допълнителна потребителска и развойна информация.

След като заредите Knoppix от CDROM-диска, ще бъде направено опознаване на хардуера, който имате, и съответно ще бъдат заредени необходимите драйвери, като в крайна сметка ви се стартира графична сесия (може да променяте поведението при зареждане с подаването на cheatcodes, които може да разберете с F2, когато в началото ви се подава boot: промпта). Двата акаунта (root и knoppix), с които системата идва по подразбиране, са заключени, но това не е проблем. Не е нужно дори да знаете техните пароли, за да ги смените, а всъщност те нямат пароли. Дори и като потребител knoppix ви е предоставена възможността да изпълните:

$ sudo su

и ставате root ( sudo(8), su(1), sudoers(5) и разгледайте файла /etc/sudoers), след което може да му смените паролата с:

# passwd root

тази парола ще е валидна само за сесията, т.е. докато рестартирате, и само вие си я знаете, разбира се. Повече информация по този въпрос можете да намерите на CDROM-диска в KNOPPIX/README_Security.txt.

Оттук вече, ако имате желание или ви се налага, можете да работите със съществуващите файлови системи на хард дисковете -- ако имате такива, да създавате нови дялове и да създавате в тях различни типове файлови системи, които после да монтирате където намерите за добре (т.е. доста мощно rescue решение). Без да инсталирате никъде нищо, можете просто да прочетете набързо документацията, специфична за Debian:

Дори ви препоръчвам този документ да го четете от вашата Knoppix система (без да пипате нищо по хард дисковете), за да поглеждате в нея, докато четете.

Ако нямате възможност да си вдигнете мрежата и да четете този документ от мястото, където се хоства (т.е. от отдалечения web server), то го запишете на дискета, монтирайте я и четете от нея.

Трябва да отбележим, че от Knoppix 3.3 освен knx-hdinstall вече има и още един хард-диск инсталатор наречен knoppix-installer. Той предлага два режима на инсталация knoppix-mode при който зареждането на инсталираната върху хард-диска система ще прави автоматично разпознаване на хардуера точно както това става на LiveCD-то и debian-mode, който инсталира традиционния Debian, като неговия официален инсталатор. Ако при инсталацията на хард-диска използвате knoppix-mode след това не би трябвало да има проблеми ако обновявате от официалния Debian архив, понеже файловете специфични за Knoppix няма да бъдат закачани от dpkg, поне докато не влязат подобни пакети доставящи точно същите файлове точно на същите места във вашата система, при което dpkg ще предупреди за overwrite и ще преустанови инсталацията на тези пакети докато не го принудите с някоя от force опциите му. За повече, подробности http://www.knoppix.net/forum/viewtopic.php?t=5297 и http://www.knoppix.net/forum/viewtopic.php?t=5017, където ще намерите още по-подробен ChangeLog на Knoppix 3.3 съдържащ нови cheatcodes както и коментари за knoppix-mode и debian-mode.

... към Debian на диска

След като понапреднете малко с материала и сметнете, че искате да имате инсталиран Debian на вашия харддиск (или харддискове), може да опитате да го инсталирате от Knoppix CDROM-диска с помоща на скрипта knx-hdinstall и описаното на http://www.freenet.org.nz/misc/knoppix-install.html или с новия knoppix-installer от Knoppix 3.3 или както е описано в Install Manual за различните хардуерни архитектури. Не бързайте с инсталацията върху хард диск, тя няма да избяга, докато разучите Knoppix-а и документацията на Debian. Добра статия е и The Very Verbose Debian 3.0 Installation Walkthrough.

Има и още един вариант да инсталирате оригиналния истински Debian чрез зареждане на Knoppix LiveCD. Това е чрез bootstraping на Debian от Knoppix е описано тук: http://www.inittab.de/manuals/debootstrap.html Накратко ако не ви задоволяват boot-floppies, буутвате с Knoppix и използвате debootstrap за да инсталира Debian Base система.

Debian може да се инсталира по много начини, както ще прочетете в наръчника за инсталация, но пък знам, че първо ще се пита за CD's. Тук разнообразието е голямо и сами можете да се запознаете от http://www.debian.org/CD/. Там ще прочетете как да си изтеглите официални и неофициални CD images през HTTP или FTP и как по-ефективно да правите това с jigdo, което може да научите от Debian Jigdo mini-HOWTO, също така са изброени и vendors, които могат да продават CD's (не се заплаща софтуера, а само носителя!). Предоставя се и неофициален Net Install bootable CD image, официални такива засега няма. Освен CD images ще намерите и DVD images, като и двата вида могат да се изтеглят и обновяват с jigdo от пакета jigdo-file.

В тази връзка впоследствие обърнете внимание на пакета bootcd ( bootcd(1)). Може да изкопирате вашия running Debian на CDROM чрез скрипта bootcdwrite(1) от същия пакет. За генериране на Official Debian CD images си инсталирайте пакета debian-cd.

За автоматично разпознаване и конфигуриране на хардуера за така инсталирания Debian на диска има програми като discover и kudzu, който се ползват и в други дистрибуции. Knoppix LiveCD, например, ползва собствени конфигуриращи хардуера скриптове заедно с модула cloop, който вече е в официалния Debian архив благодарение на автора на Knoppix Klaus Knopper -- cloop-src и cloop-utils. Имайте предвид, че ако на вашата система някой драйвър не е компилиран като модул за ядрото или не е закомпилиран в самото ядро, то ще трябва да направите поне едно от двете, за да може да използвате съответния хардуер.

Достъп до Knoppix и Debian CD и DVD images

Knoppix images

Debian images

Български миръри на Knoppix и Debian

За българските потребители ще е по-удобно да изтеглят Debian Knoppix от български миръри:

Images:

Binary и Source Packages - тези може да ги описвате в /etc/apt/sources.list. В директорията utils/home/ на книгата може да разгледате такива конфигурационни файлове:

Не бързайте да изтегляте Debian images:

Ако нямате възможност или не знаете как да дръпнете и изпечете на CD тези images, тогава ви остава да намерите някой, който да го направи за вас, или безплатно и на приятелски начала, ако е ваш познат, или може да се наложи да заплатите разходите по изтеглянето, изпичането и самата празна CDROM бланка, ако не си носите такава. Помнете, че за самия софтуер на Debian и Knoppix не могат да се искат пари, но пък никой не е длъжен да ви пече колкото се сетите на брой CD-та за негова сметка, щото на вас така ви харесва, пък не можете да го постигнете сами. Така че е излишно да се хвърляте на повече от едно-две CD-та, след това много лесно може да се доинсталира и обнови каквото ви трябва, пък го е нямало на тези CD's.

Примери за сглобяване на ISO files с jigdo

Примерни огледални сайтове

Ако по българските миръри няма ISO файла който търсите (за дадена архитектура или по-нова в момента разработвана и неиздадена версия) то можем да ползваме .deb's които ги има по нашите миръри и да не теглим ISO files от чужбина, а само т.н. .jigdo и .template files. Българските миръри могат да ги изтеглят от:

rsync -avz cdimage.debian.org::debian-cd/
rsync -avz us.cdimage.debian.org::jigdo-area/
rsync -avz non-us.cdimage.debian.org::debian-jigdo/

Много добър пример за ISO и jigdo files, а така и rsync сървър е mirrors.kernel.org. В поддиректории на debian-cd/ се съхраняват:

# rsync -avz mirrors.kernel.org::debian-cd/

drwxrwxr-x        4096 2003/12/02 16:49:56 jigdo-area
drwxr-xr-x        4096 2003/01/15 09:47:59 jigdo-area/3.0_r0
...
drwxr-xr-x        4096 2003/12/02 16:49:56 jigdo-area/3.0_r2
drwxr-xr-x        4096 2003/12/04 12:20:13 jigdo-area/3.0_r2/jigdo
drwxr-xr-x        4096 2003/12/02 16:51:22 jigdo-area/3.0_r2/jigdo/hppa
-rw-r--r--        454 2003/11/27 02:23:38 jigdo-area/3.0_r2/jigdo/hppa/MD5SUMS
-rw-r--r--        32791 2003/11/27 02:14:19 jigdo-area/3.0_r2/jigdo/hppa/woody-hppa-1.jigdo
-rw-r--r--        14515668 2003/11/27 02:15:17 jigdo-area/3.0_r2/jigdo/hppa/woody-hppa-1.template
-rw-r--r--        39198 2003/11/27 02:15:38 jigdo-area/3.0_r2/jigdo/hppa/woody-hppa-1_NONUS.jigdo
-rw-r--r--        14640001 2003/11/27 02:15:41 jigdo-area/3.0_r2/jigdo/hppa/woody-hppa-1_NONUS.template
...
...
drwxr-xr-x        4096 2003/03/24 07:43:53 jigdo
drwxr-xr-x        4096 2003/03/24 05:21:57 jigdo/ia64
-rw-r--r--        607846400 2003/03/24 05:08:06 jigdo/ia64/debian-30r1-ia64-binary-1.iso
...
lrwxrwxrwx        11 2003/03/24 05:20:29 alpha -> jigdo/alpha
lrwxrwxrwx        9 2003/03/24 05:20:32 arm -> jigdo/arm
lrwxrwxrwx        10 2003/03/24 05:20:37 hppa -> jigdo/hppa
lrwxrwxrwx        10 2003/03/21 07:14:47 i386 -> jigdo/i386
lrwxrwxrwx        10 2003/03/24 05:20:45 ia64 -> jigdo/ia64
lrwxrwxrwx        10 2003/03/24 05:54:13 m68k -> jigdo/m68k
lrwxrwxrwx        10 2003/03/24 05:54:16 mips -> jigdo/mips
lrwxrwxrwx        12 2003/03/24 08:29:08 mipsel -> jigdo/mipsel
lrwxrwxrwx        13 2003/03/24 08:29:13 powerpc -> jigdo/powerpc
lrwxrwxrwx        10 2003/03/24 08:29:19 s390 -> jigdo/s390
lrwxrwxrwx        12 2003/03/24 08:29:23 source -> jigdo/source
lrwxrwxrwx        11 2003/03/24 08:29:27 sparc -> jigdo/sparc

Домашен потребител не е нужно да мирорва горното, достатъчно е да знае какво ISO иска и да си избере един .jigdo file , съответния .template file ще бъде изтеглен автоматично.

Сглобяване на ISO image който го няма по българските миръри с изтегляне на даден .jigdo и .template file

Сглобяване на ISO image който го няма по българските миръри с изтегляне на всички .jigdo и .template files

За разлика от горния пример тук мирорваме локално всички .jigdo и .template файлове със скрипт подобен на този от utils/desync.sh, необходимото място е около 1GB. След което процедираме по следния начин (например ще сглобяваме CD 1 на Sarge за Alpha):

cd debian-cd-unofficial/sarge/jigdo/
jigdo-lite sarge-alpha-1.jigdo

jigdo-lite ще ни съобщи, че е намерил съответния .template в текущата директория (особено удобно ако в .jigdo, секция [Image], Template= е зададено с абсолютен път, вместо с относителен):

Not downloading .template file - `sarge-alpha-1.template' already present

За debian/ и debian-non-US/ миръри на пакети посочваме първо българските, като дори и на тях да няма пакети за alpha, то най-малко ще бъдат изтеглени архитектурно независимите пакети и jigdo-lite ще ни съобщи колко няма да могат да бъдат изтеглени, при което имаме следните възможности:

Подробности на: http://www.debian.org/CD/jigdo-cd/#faq и http://atterer.net/jigdo/

Tilix: българизиран Knoppix

Tilix ftp://ftp.uni-sofia.bg/cd-images/linux/tilix/

Други Knoppix-live LiveCD's

Появиха се цял рояк малко или много променени Knoppix LiveCD-та, това е т.н. knoppix ефект ;-)

Gibraltar LiveCD

Съществуват и други проекти за LiveCD's, но целта им може да бъде по-специализирана. Такъв например е проекта http://www.gibraltar.at. Това е базирана на Debian router/firewall дистрибуция инсталирана на CDROM, т.е. имаме LiveCD. Големите файлове могат да се съхраняват на хард-диска, а конфигурационните данни могат да се записват на флопи и да се съхраняват в RAM паметта по време на работа. Българския мирър за ISO файлове е http://mirrors.ludost.net/cd-images/linux/gibraltar).

В официалния архив на Debian има пакети които могат да са ви от полва ако използвате това LiveCD. Такъв например е пакета gibraltar-bootsupport. С негова помощ можете да управлявате съдържанието на директориите /etc и /var внасяйки промени в тях, запазвайки ги и впоследствие може да възстановите от там. Поради тази причина този пакет трябва да се инсталира на master copy което ще бъде използвано като live filesystem на CDROM. Не инсталирайте този пакет на система която се зарежда от дял на някой хард-диск (т.е. на системата на която разработвате и съсдавате bootable CDROMs).

Публично достъпни Debian машини

Има и още един начин да погледнете в Debian система, без да е инсталирана на вашия компютър. Можете да погледнете в някоя публично достъпна система като тези обявени в тази новина http://www.debian.org/News/2003/20030102. Чрез програмата Test Drive, Hewlett-Packard (HP) предлага публичен достъп до няколко машини на които има Debian GNU/Linux. Потребителите могат да получат акаунт, да надникнат в тези машини и да придобият представа как се представя Debian GNU/Linux на хардуердуерните архитертури от HP - поддържат се четири такива архитектури - Alpha, PA-RISC, IA-32 и IA-64 (може би това ще е уникална възможност да наблюдавате Debian GNU/Linux на платформа различна от познатото до болка x86 PC). Има инсталирани компилатори на тези платформи, така, че потребителите ще могат да тестват дали даден софтуер се компилира на тези платформи.

Инсталация на Debian GNU/Linux Woody от CD-ROM на x86 PC

Доста сложна е задачата на инсталационния процес, като се има предвид броят поддържани хардуерни архитектури и начини на инсталация. Вече разбрахме, че като инсталатор на Debian за x86 машини може да се ползва и CD-ROM диска на Knoppix (/usr/local/bin/knx-hdinstall).

Следва описание на инсталационната процедура от CD-ROM на Debian GNU/Linux Woody върху x86 PC. Може би това е най-често срещаната ситуация при начинаещите потребители, но това далеч не е единствения метод за инсталиране на Debian.

Стартиране на инсталационния процес

Първо да укажем на компютъра да зарежда от CD-ROM-а при стартиране:

Включваме компютъра и още в началото докато се инициализира BIOS-а (Basic Input/Output System) в долният край на екрана се появява надписът Press DEL to enter Setup. Натиснете клавиша Delete докато се вижда надписа, за да влезете в менюто с настройките на BIOS. Ако сте с марков компютър (IBM,Dell,HP и т.н) то най-вероятно тази клавишна комбинация няма да е валидна за вас. Опитайте например с F1 или F2, понякога може да се наложи и да упорствате. В самото меню навигацията се осъществява с клавишите със стрелките и Enter (изписано е на самото меню). След като сте влезли в менюто на BIOS-а изберете опцията BIOS FEATURES SETUP (или подобно). В новопоказалото се меню отидете на Boot Sequence или мястото, от където се указва подредбата на устройствата, от които зарежда компютъра. Там задайте първо да зарежда от CD-ROM-а (или First Booting Device да е CD-ROM). Сложете CD-ROM диска с Debian Woody в CD-ROM устройството След това натиснете Esc, за да отидете отново в главното меню и там изберете SAVE AND EXIT SETUP. Потвърдете с Y(es) и Enter. Компютърът ще се рестартира и ще опита да зареди първо от CD-ROM устройството.

Компютърът зарежда от CD-ROM и се стига до boot: запитването. Ако натиснете Enter ще започнете инсталация на Debian с kernel (ядро) версия 2.2.20 (считано от някои за старо). Ако искате по-модерната версия 2.4 въведете на boot: bf24 (можете да разгледате наличните ядра с клавиша F3 и да получите още разнообразна информация с клавиши от F1 до F10).

В тази примерна инсталация ще продължим с ядро версия 2.4, така, че на boot: задаваме bf24. След натискането на Enter указаното ядро бива заредено и първият въпрос, които се показва пред нас е за избор на език на който да протече инсталацията.

Choose The Language

Тук се указва на какъв език да продължи инсталацията. В този пример ще изберем [en] (English). Показва се следният въпрос:

Choose language Variant

Избираме English(United States)

Следват Release Notes.

Просто натиснете Enter :-)

Ето ни в главното инсталационно меню на Debian GNU/Linux...

Debian GNU/Linux Installation Main Menu

Навигацията се осъществява със "стрелките" на клавиатурата и Enter. Нека да започнем работа, сега ;-). Изберете от менюто (маркирайте със стрелките и натиснете Enter):

1.Configure Keyboard

Изберете qwerty/us

2.Partition a Hard Drive

Select Disk Drive

Ако имате един IDE твърд диск най-вероятно ще бъде изписано /dev/hda. Ако е например /dev/sda - това означава, че сте късметлия и разполагате със SCSI твърд диск.В този пример ще приемем, че има само един - натискаме Enter. Ако обаче имате повече от един твърд диск ще трябва да зададете на кой ще инсталирате Debian.

LILO Limitations

Enter

Note on additional space for the ReiserFS Journal

Enter

... зарежда се програмата cfdisk. CFDISK е еквивалента на страшната команда fdisk в DOS - помните я нали? Разбира се и тук има команда fdisk, но повярвайте ми - работите ли веднъж със cfdisk - ще забравите за fdisk. Навигацията е със стрелките <- и -> за менюто долу, а с другите две в таблицата с дяловете (partition table) на твърдия диск. Enter селектира маркираната опция/дял. Ето как изглежда, ако предположим, че твърдия диск Ви е с големина 20GB и има два дяла (означени под Windows като C: и D:)

cfdisk 2.11u
Disk Drive: /dev/hda
Size:20560412672 bytes
Heads:255 Sectors per Track:63 Cylinders:2499

Name Flags Part. Type FS(File System) Type [Lablel] Size(MB)
hda1 Boot Primary Win95 FAT32   6259.45
hda2   Primary Win95 FAT32   14295.56

[Bootable] [Delete] [Help] [Maximize] [Print]

[Quit] [Type] [Units] [Write]

Поради всевъзможните различия в големината на твърдите дискове и разделението им на дялове, не може да се даде пример, валиден за всеки един отделен случай. За това най-добре разгледайте [Help] секцията на cfdisk. И все пак, за да можем да продължим примерната инсталация ще приемем, че PC-то не е виждало що е то GNU/Linux - има два Primary (главни) дяла (като на схемата на cfdisk по-горе). (ако преди това сте инсталирали на компютъра си някоя друга GNU/Linux дистрибуция и дяла й все още е на твърдия диск, Debian ще го засече и ще Ви предложи да използвате вече съществуващия дял, без да е нужно да правите нов. По този начин си спестявате частта Partition a Hard Drive и продължавате с останалите стъпки.)

Сега да продължим по сценария - един 20GB твърд диск с два дяла под Windows... За да създадем дял за Debian ще трябва да изтрием втория дял (на първия евентуално се намира операционната система Windows, която не желаем да затрием.. поне за сега ;-) ) и от освободилото се място (Free Space както го показва cfdisk) да направим няколко нови дяла - един за Windows, един за GNU/Linux и един swap дял (играе ролята на виртуална RAM памет, само че доста по-бавна, тъй като е създадена на твърдия диск). Маркираме с помощта на стрелките втория дял с име (Name в cfdisk) hda2. След като е маркиран дяла hda2 избираме от менюто на cfdisk опцията [Delete] (така изтриваме втория дял и мястото, което той е заемал се освобождава като Free Space; имайте предвид, че при това изтриване ще изгубите всичката информация съхранявана на втория дял; ако сте задали само [Delete] не се безпокойте, промените не се записват докато не се зададе [Write] от менюто на cfdisk. Така че можете просто да дадете [Quit], без това да се отрази по някакъв начин на информацията на Вашия твърд диск.) В нашия пример ще предположим, че всички ценни данни от втория дял са били предварително прехвърлени на първия. Така втория дял е изтрит и е освободено мястото, което той е заемал - точно 14295.56MB. Сега да създадем новите дялове: първо Windows дяла - селектираите Free Space-а от таблицата на cfdisk и от менюто изберете [New]. Трябва да укажете колко MB желаете да е дяла, например 9000MB. Въвеждате числото 9000 и натиснете Enter. Докато е маркиран новонаправения дял изберете [Type] от менюто. Показва се таблица с различните файлови системи (FS), които могат да бъдат указани с cfdisk и съответстващия им код (номер). Ако в долния край на екрана пише Press any key to continue натиснете един произволен клавиш. Показва се краят на таблицата и следният текст: Enter filesystem type:82. Тук се въвежда кодът съответсващ на файловата система, която искаме да укажем за новия дял. Най-вероятно ще е зададен кодът 82, съответстващ на файловата система за Linux - ext2. Но ние желаем да зададем дял за Windows, за това ще въведем съотвестващият код - 0B (нула B). Новият дял е готов. Сега по същата схема да направим дял и за Debian - маркиране на Free Space, [New], задаване на големината на дяла - 5000MB, после [Type] - код 82. И за swap дяла - [New], задайте цялото оставащо място (по принцип и 100-200MB са предостатъчни), [Type] - код 83. Това е само пример как се работи с cfdisk. Можете да си поиграете с дяловете на Вашия твърд диск, но без да задавате [Write] освен, ако не сте сигурни, че искате да запазите новосъздадения ред в таблицата с дялове. Така след като сме си свършили работата с дяловете и искаме да запазиме новата подредба избираме [Write] и отговаряме на въпроса Do you want (to) write the partition table to disk? с Yes, за да бъдат записани промените. След това [Quit] и отиваме на:

3.Initialize and Activate a Swap Partition

Scan for Bad Blocks

Задайте No, освен ако Вашият твърд диск е от по-старичките или просто искате да бъде направена проверката за лоши блокове.

Are you sure?

Yes

4.Initialize a Linux Partition

Choose Filesystem Type

Ако нямате представа за какво става въпрос, просто изберете ext2 ;-)

Select Partition

Тук изберете дяла, който създадохте с cfdisk. От примера - /dev/hda3:Linux native

Scan for Bad Blocks?

Както при swap-a.

Are you sure?

Yes ;-) След това се създава файловата система и се появява въпросът:

Mount as the Root Filesystem?

Yes

5.Install Kernel and Driver Modules

Found a Debian CD-ROM

Yes и изчакайте да свърши копирането.

6.Configure Device Driver Modules

Note about loaded drivers

Enter

Select Category

Ако не сте сигурни просто изберете Exit(Finished. Return to previous menu)

7.Configure the host name

Choose the Hostname

Тук задавате името на машината Ви или така напечения hostname. По подразбиране е debian.

8.Install the Base System

Select Installation Media

cdrom:CD-ROM drive ... ако имате повече от едно CD-ROM устройство ще се появи следния въпрос:

Select CD-ROM drive

Ако не знаете кое устройство да зададете, изберете едно и потвърдете с Enter. И след като на следващия въпрос:

Please insert the CD-ROM

натиснете Enter се появи: Mount failed значи сте избрали грешния CD-ROM (!диска с Debian Woody трябва да е в едно от CD-ROM устройствата!). Не се притеснявайте -- дайте пак Enter и се връщате обратно в главното инсталационно меню. Там пак изберете Install the Base System като продължите по същия път, само че сега задайте правилното CD-ROM устройство.

Select Archive path

Enter ... започва инсталацията на най-важните пакети, тоест Base System-a. Ако всичко е протеклно нормално, пак ще се озовете в Installation Main Menu.

9.Make System Bootable

Select Archive path

Препоръчително е да изберете /dev/hda:Install LILO in MBR.

Other bootable partitions

Изберете Include all into the menu. Така ще можете да зареждате всички операционни системи, инсталирани на компютъра Ви.

Securing LILO

Enter

10.Make a Boot Floppy?

В тази част от инсталацията имате възможност да създадете дискета, от която евентуално можете да зареждате Debian-а си.

Change Disk

Ако искате да направите подобна дискета, сложете във флопито една (!ако има някаква информация на нея, то тя ще бъде загубена!) и натиснете Enter. Ако ли не -- само натиснете Enter и на изскочилия

Problem

просто натиснете Enter. Това по никакав начин не пречи на инсталацията Ви. Ето ни обратно в Installation Main Menu.

11.Reboot the System

Ще рестартираме системата.

Reboot the system?

Ако има някакви дискети или CD-ROM-и, извадете ги от съответните устройства и задайте Yes. Reboot...

След рестартирането се появява LILO Boot Menu-то. От тук избирате коя операционна система (OS) да бъде заредена. Избираме Linux и Enter. Започва се конфигурирането...

Debian System Configuration

Enter

Time Zone Configuration

Is the hardware clock set to GMT?

Ако имате няколко различни OS на компютъра по-добре изберете No, защото може да се получи една хубава каша...

What area do you live in?

None of the above FIXME: виж малко по-надолу

Select a city or time zone:

Изберете UTC.

FIXME. Препоръчително е тъй като се намирате на 2h време от GMT, да изберете България/София, или просто GMT+2. Имайте предвид, че дори и да изберете град със същата часова зона, daylight saving time (лятното часово време) не е същото. Имайте го предвид ако си настроите Кайро, Истанбул или нещо от сорта, че все пак не е София.

Password setup

Shall I enable md5 passwords?

Yes

Shall I enable shadow passwords?

Yes

Enter a password for root:

Въведете парола за root (това е най-важния потребител на системата или още администраторa; за него няма ограничения в действията - може да отвори/изтрие/модифицира всеки файл/директория на системата)

Re-enter password to verify:

Въведете отново същата парола за потвърждение.

Shall I create a normal user account now?

За създаване на обикновен потребителски акаунт, който се използва обикновено вместо root акаунта (използването на root по време на irc сесии, разглеждане на сайтове и тем подобни се счита за рисково относно сигурността на системата)

Enter a username for your account:

Въведете потребителско име за новия акаут.

Enter a username for your account:

"Въведете пълно име за новия потребител"... може да въведете и произволен текст, а може и нищо да не въвеждате - само да натиснете Enter.

Enter a password for the new user:

Паролата... и след това още веднъж...

... ето ни пак в Debian System Configuration.

Shall I remove the pcmcia packages

Yes (в този пример се предполага, че към системата няма pcmcia устройства, както би било с някой най-обикновен компютър за домашна употреба)

Do you want to use a PPP connection to install the system?

No

Apt Configuration

Choose the method apt should use to access the Debian archives

За сега задайте само cdrom. Ако диска не е бил поставен в CD-ROM-а -- поставете го.

Enter CD-ROM device file:

Само поставете диска и натиснете Enter. Диска бива сканиран и следва въпроса:

Scan another CD

... дали желаете да се сканира друг диск. Ако разполагата само с диска, с който извършихте инсталацията изберете No. Ако имате още Debian дискове, можете да зададете Yes и те да бъдат сканирани, за да знае системата и за намиращите се в тях пакети.

Add another apt source?

Засега No. Оставете това за по-късно, запомнете командата apt-setup, тя ще ви пести copy&paste ;-)

Use security updates from security.debain.org?

За сега No. По-късно като се вържем към Интеренет и ще нагласим тези настройки.

Ето ни обратно в Debian System Configuration.

Run tasksel?

No

Run dselect?

No

Do you want to continue?

Yes

Do you want to erase any previously downloaded deb files?

Yes

Press enter to continue

Enter. Следва конфигурирането на exim:

I can do some... bla bla...

Enter. За да не се занимавате с конфигурацията на exim, можете да зададете 5 и да натиснете Enter. Ако не - четете менютата...

Thank you for choosing Debian

Честит Ви новичък Debian Woody. Сега можете да влезете в системата като root или "обикновения" потребител, който създадохте по време на инсталацията. Няколко подробности: ако желаете да рестартирате машината, въведете следната командата като root:

# shutdown -r now
Същият ефект можете да постигнете със популярната клавишна комбинация Ctrl+Alt+Del.

За изключване на компютъра:

# shutdown -h now

За повече информация относно shutdown(8). За информация относно някоя команда:

$ man команда

Разработка на официалния debian-installer и други installer(s)

Официалният debian-installer

До Woody 3.0 официалния инсталатор се наричаше boot-floppies, за следващото стабилно издание Sarge вече има нов проект (или по-точно голямо разширение на предния) който се нарича debian-installer. CVS хранилище на двата проекта можете да намерите на cvs.debian.org. Официалната страница на новия инсталатор можете да намерите на http://www.debian.org/devel/debian-installer/.

Основните обвинения към официалния инсталатор са към единствения засега текстов интерфейс и скромния hardware autodetecting, но пък от друга страна има и потребители, които не искат и да чуят за повече от това. За да бъдат всички доволни, се подхожда колкото е възможно по-модулно и с "`повече лица"', т.е. предлага се общ базов протокол за минималните и задължителни неща, които трябва да присъстват в един такъв инсталатор, справящ се с доста хардуерни архитектури и начини на инсталация, като отгоре му вече се избира опционално видът на интерфейса (text, dialog, debconf, slang, gtk и др.), дали да се прави hardware autodetecting и по какъв начин, с използването на програми като kudzu, discover и т.н. Това е в процес на разработка и ще бъде официалния инсталатор за Sarge.

pgi: The Progeny Graphical Installer

Този инсталатор има собствен сайт, както и пакет pgi.

А както и хранилище на alioth.debian.org/projects/pgi.

Progeny реши да предостави Debian 3.0 Woody i386 installer images, базирани на PGI 1.0.1 (свободен лизенз). ISO image (има и bg mirror) съдържа само базова инсталация, като се прави hardware autodetection и ви се предлага да изберете групи от пакети. След което може да продължите с инсталиране на пакети от външен източник, например насочвайки apt към друго Debian CD, HTTP или FTP mirror и т.н.

Има и снимки на това, как изглежда началото на инсталацията с PGI 0.9.6.

Дори можете да си създадете инсталатор по ваш вкус и желание, ползвайки като основа кода и документацията:

fai: Fully Automatic Installation for Debian GNU/Linux

Целевата група на FAI са системните администратори, които имат за задача да инсталират Debian на множество машини. Може да се използва за инсталиране на Beowulf cluster, rendering farm, web server farm или linux лаборатория или classroom. Също така large-scale linux мрежи с разнообразен хардуер и различни инсталационни изисквания не са проблем при използването на FAI. Това е автоматизиран инсталационен инструмент за Debian GNU/Linux, подобен на, но по-добър (според автора) от инструменти като kickstart за Red Hat, yast и alice за SuSE, lui от IBM или Jumpstart за Solaris.

SystemInstaller, SystemImager, SystemConfigurator

systeminstaller

Creates Linux distribution images from a set of packages SystemInstaller creates Linux distribution images from a set of packages and specification files. Working in conjunction with SystemImager and SystemConfigurator, these images can then be installed to machines throughout your cluster/network. As a side-effect, it can be used as a tool for building chroot environments for many package based distributions. Further details can be found at http://systeminstaller.sourceforge.net and http://sisuite.org.

systemimager-common

SystemImager ramdisk for client nodes SystemImager is a set of utilities for installing GNU/Linux images to clients machines over the network. Images are stored in flat files on the server, making updates easy. rsync is used for transfers, making updates efficient. http://www.systemimager.org/download/

systemconfigurator

Unified Configuration API for Linux Installation Provides an API for various installation and configuration processes that are otherwise inconsistent between the many Linux distributions, and the many architectures they run on. For example, you can configure the bootloader on a system in a general way - you don't need to know anything about the particular boot loader on the system. You can update the network settings of a system, without knowing the distribution or the format of its network configuration files.

Replicator

replicator: Автоматизирана инсталация през мрежа. Използвайки nfs-root файлова система и rsync, replicator ви позволява интерактивно да използвате като източник компютър с инсталирана система, която да пренесете върху друга машина през мрежата, като взима предвид различията в разделянето на дисковите дялове и в хардуера. Специално проектиран за клъстери, класни стаи и всякакви идентични помежду си компютри, това наистина е най-бързият метод на инсталация.

Който и източник на инсталация с даден инсталатор да ползвате, все ще получите стандартен Debian Base (т.е. стандартна базова инсталация на Debian).

Първоначално запознаване с Debian

Процес на стартиране на Debian GNU/Linux

Когато включите компютъра си, първото нещо, което той прави, е да провери дали всичко е наред с хардуера. След това програма, наречена "bootstrap loader", търси boot-sector (сектор за начално зареждане). Boot-секторът е първият сектор от твърдия диск и в него има малка програма, която може да зарежда операционни системи. Тази програма не може да да бъде по-голяма от 512 байта. Boot секторът може също да се намира на дискета или CD. Когато bootstrap-програмата намери boot-сектор, го зарежда в паметта и се изпълнява програмата, която зарежда операционната система. Обикновено, когато на компютъра е инсталиран GNU/Linux, тази програма е LILO (LInux LOader). Debian използва LILO. Освен LILO можете да използвате и по-малко известния grub (друга програма за зареждане на операционни системи).

Когато компютърът зареди boot-сектор на нормална GNU/Linux система, той всъщност зарежда част от LILO, наречена "first stage boot loader (първо ниво)". Неговата работа е да зареди "second stage boot loader (второ ниво)". Второто ниво Ви запитва каква операционна система искате да се зареди.

Ако изберете Linux, се зарежда ядрото (обикновено /vmlinuz).FIXME! Ядрото всъщност е самата операционна система. То отговаря за комуникацията на софтуера с хардуера. Когато ядрото се зареди напълно, първата програма, която изпълнява, е /sbin/init. За подробности може да погледнете init(8) man-страницата. Просто напишете:

$ man 8 init
или само
$ man init

Ако обаче не намери /sbin/init, ядрото (говорим за ядра, версия 2.4.x) търси /etc/init, /bin/init. Ако и тези не съществуват, ядрото изпълнява шел /bin/sh. Ако обаче и /bin/sh не съществува, системата не се стартира, а вместо това виждате следното съобщение: "No init found. Try passing init= option to kernel.".

Ако получите такова съобщение, можете да стартирате ядрото, задавайки следните параметри на LILO:

LILO: Linux init=/bin/bash

По този начин казвате на ядрото да не се изпълнява /sbin/init, а /bin/bash, което ще Ви осигури шел (shell) веднага след зареждане на ядорото в паметта. Имайте предвид, че системата няма да се държи както обикновено (след малко ще разберете защо). Най-простият пример за това е, че не можете да видите процесите на системата (ако се чудите защо -- защото /proc файловата система не е монтирана. За да я монтирате просто напишете:

mount /proc

На практика можете да замените /sbin/init с каквато решите програма, но не е препоръчително, освен ако наистина знаете какво правите :-).

Работата на init е да прочете файла /etc/inittab и в зависиост от съдържанието му да изпълни определени скриптове след зареждане на ядрото, наречени rc скриптове. Те имат за цел да стартират определени услуги (програми) при стартиране на системата (например графичната среда, уебсървъра, демона за водене на отчетни файлове, виртуалните терминали и други) и да ги спират при изключване на системата. Когато се стартират тези скриптове, системата може да премине в различни нива (runlevels), а те са: еднопотребителски режим, многопотребителски режим, спиране на системата или рестартиране. Нивата на изпълнение са описани в /etc/inittab:

# Runlevel 0 is halt. (спиране на системата)
# Runlevel 1 is single-user. (еднопотребителски режим)
# Runlevels 2-5 are multi-user. (многопотребителски режим)
# Runlevel 6 is reboot. (рестартиране на системата)

Ако искате да смените режима, в който системата по принцип влиза при стартиране -- търсете ред в /etc/inittab, подобен на този:

id:ниво:initdefault:

Стойностите на "ниво" могат да бъдат 1, 2, 3, 4 или 5. В противен случай системата няма да се стартира.

Еднопотребителският режим е по-специален. Когато системата се стартира в този режим, тя всъщност иска паролата на root-потребителя и му предоставя шел, ако е вярна. В този режим не се отварят виртуални терминали и никой друг не може да влезе в системата. Този режим се използва главно, когато нещо в системата не е наред и трябва да се оправи или при сериозна промяна в системната конфигурация като реорганизиране на дяловете, форматиране на файлови системи и въобще мащабни операции, а също и при провеждане на тестове върху системата.

Когато една Debian-система се стартира, тя преминава в runlevel 2 (многопотребителски режим). Тогава се изпълняват скриптовете в директория /etc/rc2.d/, които пък сами по себе си са символни връзки (за повече информация прочетете man страницата на ln(1)) към скриптовете в /etc/init.d/. В /etc/init.d/ се намират всички rc скриптове. Различните нива имат директории /etc/rcниво.d/. Така че, ако искате да промените скриптовете, които се изпълняват при стартиране на системата -- отивате в директория /etc/rc2.d/.

За по-любознателните -- кодът, който определя коя програма да се изпълни след зареждане на ядрото, се намира във файла /usr/src/linux/init/main.c (последните няколко реда).

Вход и изход от системата

Първоначална идентификация

Когато стартирате своята Debain-система, първото, което трябва да направите след като системата е заредила успешно, е да се идентифицирате. Debian ще очаква да направите това, като ви предостави login prompt, който изглежда примерно така:

Debian GNU/Linux testing/unstable shodan tty1

shodan login:

При вас разбира се ще изглежда малко по-различно (най-малкото, заради името на хоста), а също така е взможно и този процес при вас да се извършва в графичен режим, вместо текстово като при мен, при положение че системата ви е конфигурирана с XWindow (kdm, gdm или xdm).

След въвеждането на потребителското име, ще трябва да се идентифицираме и с парола:

Debian GNU/Linux testing/unstable shodan tty1

shodan login:manchev
Password:

След успешната идентификация, Debian ще ни предостави своя prompt, който при мен изглежда така:

manchev@shodan:~$

Важно е да отбележим, че описанията и примерите, които ще даваме и обясняваме, в случая засягат работата на Debian през конзола, така че ако използвате графична среда, сега е моментът да отворите терминална емулация на конзолата.

Преди да се захванем с най-основите команди, които може да изпълнявате, трябва да обърнем внимание на два основни аспекта. След като вече сте получили оторизация за използването на системата, може да се наложи да оставите компютъра без надзор, което е опасно от гледна точка на сигурността. Освен това, трябва да знаете как правилно да изключвате системата. И така, когато трябва да стане от работното си място, добра идея е да се изключите от системата, за да не може някои да използва вашето име и вашите права в нея с недобронамерени цели. За изключване от системата напишете на промпта:

manchev@shodan:~$logout

Това ще ни върне в стартовото състояние и на екрана ще се изведе частта, очакваща идентификация:

Debian GNU/Linux testing/unstable shodan tty1

shodan login:

Когато искате да изключите компютъра изобщо, трябва да изпълните друга командата -- shutdown. Важно е да се отбележи, че това е задължителна стъпка, понеже директното щракване на копчето крие рискове от загуба на данни -- Linux поддържа кеш спрямо дисковете си, като времето на опресняване е от порядъка на 30 секунди. Спрете ли системата направо от захранването, рискувате загуба на информация, която все още не е прехвърлена към дисковата система.

shutdown

Командата shutdown(8) се използва за изключване на системата чисто и безопасно. Когато изпълните командата shutdown всички включени в системата потребители (локални или отдалечени) получават нотификация, че системата прекратява работа. Освен това се поставя и забрана за включване на нови потребители. Следващата стъпка, която shutdown(8) предприема е да изпрати сигнала SIGTERM до всички работещи към момента процеси. Това дава възможност на програмите, които го разпознават да приключат нормално работата си (например даден текстови редактор разбира, че системата се готви за изключване и може да запази данни от файла, който в момента се редактира чрез него). По-нататък shutdown(8) се свързва с процеса init(8), като заявява смяна на runlevel(8), като стойността по подразбиране е runlevel 1. (FIXME: Да се обясни) Има няколко важни параметъра, които можем да укажем на командата, а именно:

-r Параметърът изисква от системата да се рестартира, след като приключи изпълнението на процесите, които shutdown изисква.

-h Блокира всякакъв достъп към системата. Обикновено точно този параметър се използва, когато смятаме да изключим изцяло компютъра.

Освен това, командата shutdown изисква и един задължителен параметър "- time", който казва кога да се извърши изключването. Той може да се замени с константата "now", което инструктира shutdown да започне процеса незабавно.

От казаното по-горе можем да конструираме два от основните формати на извикване на shutdown, а именно:

Ако сега се опитам да изпълня една от двете команди на моята система, това което ще се случи няма да е очакваното:

manchev@shodan:~$shutdown now -r
bash: shutdown: command not found

Bash (FIXME:Две думи за Bourne и C shell) ни съобщава, че не е намерил изисканата от нас команда. Това се случва по простата причина, че ние като обикновен потребител нямаме в пътя си достъп до /sbin директорията от файловата система, коята съдържа в команди достъпни единствено за администраторите на системата. Дори и да отидем в самта директория и да изпълним командата там (което е постижимо), ще видим нещо от рода на:

shutdown: you must be root to do that!

Ако помислим логично -- тази защита е съвсем уместна. Ние не бихме искали всеки потребител на когото сме дали някакъв достъп до системата да има възможност да я изключва и рестартира. Което ни води до следващата крачка: Ако не използваме системата като root, но въпреки това администрираме системата, как да извършим операциите по изключването и рестартирането й?

Тук е момента да споменем още една основна команда -- su(1). Тя ни дава възможност да сменим своята идентификация и в частност да се превърнем superuser, който има права да извърши дадената операция.

su

Както вече споменахме, su ни дава възможност да се превърнем в друг потребител по време на нашата собствена сесия. Ако извикаме командата без име на потребител, чиито права искаме да придобием, тогава по подразбиране su предполага, че искаме да се превърнем в root. Важно е да обърнем внимание на параметъра "", който се използва за да придобием и обкръжението, което потребителят в който се превръщаме би получил ако се включи директно към системата. Например, ако се превръщаме в нормален потребител, стойността на на променливата (FIXME: DOLLAR)PATH ще се промени на /bin:/usr/bin или ако се идентифицираме като super user, нейната стойност ще бъде /sbin:/bin:/usr/sbin:/usr/bin.

Друг итнересен параметър на командата е "-c" чрез който направо изпълняваме дадена команда с правата на потребителя, в който се превръщаме.

От тук насетне имаме два подхода: Първият е да се превърнем в super user и да изпълним командата shutdown(8), а вторият -- да извикаме su(1) и направо да поискаме той да изпълни shutdown(8) с права нa superuser.

Първият подход изглежда така:

manchev@shodan:~$su -
Password:

След като желаем да се превърнем в root, системата изисква да напишем паролата за акаунта на този потребител. След като я въведем правилно ще получим нов промпт:

shodan:~#

Обърнете внимание в промяната на знака $ в #. Именно заради тази промяна винаги можем да знаем като какъв потребител използваме конзолата -- нормален когато промпта е $ или root когато промпта е #.

Изпълняваме shutdown(8):

shodan:~#shutdown now -h

Broadcast message from root (tty1) 

The system is going down for system halt NOW!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signal
Stopping periodic command scheduler: cron.
Stopping initernet superserver: inetd.
Stopping OpenBSD Secure Shell server: sshd.
Saving the System Clock time to the Hardware Clock...
Hardware Clock updated to Tue Aug 19 13:23:37 EEST 2003.
Stopping deferred execution scheduler: atd.
Stopping kernel log daemon: klogd.
Stopping system log daemon: syslogd.
Sending all processes the TERM signal... done.
Sending all processes the KILL signal... done.
Saving random seed... done.
Unmounting remote filesystems... done.
Deconfiguring network interfaces.... done.
Deactivating swap... done.
Unmounting local filesystems... mount: proc already mounted
done.
flushing ide devices: hda hdc
Power down.

Е, сега е безопасно да изключите компютъра си, ако той сам не се е изключил разбира се.

Другият вариант беше да напишем направо:

manchev@shodan:~$su -c "shutdown now -h"
Password:

И след въвеждането на паролата, щеше да последва същата поредица от действия (FIXME: Да не забравя за sudo).

Когато говорим за изключване или рестартиране на системата, трябва да обърнем внимание и на командите halt(8), reboot(8) и poweroff(8). Какво правят те е видно от самите им имена. Да вземем за пример действието на halt(8). Ако изпълним halt(8) и не се намираме в runlevel(8) 0 или 6 (тоест -- нормално функционираща система) Debian ще изпълни shutdown -h (респективно shutdown -r, ако извикаме reboot(8)). С една дума може да гледаме на halt(8) като синоним на shutdown -h. В по-старите версии на sysvinit не беше разрешно halt(8) да се извиква директно. Така или иначе употребата на shutdown(8) е по-елегантния начин за изключване/рестарт и най-добре се придържайте към него.

След като видяхме как правилно можем да се включим, изключим и как безопасно да спрем системата, вече е време да започнем да се забавляваме с основните команди на Debian GNU/Linux.

Разглеждане на файлове с ls

Първото нещо, което веднага ни идва на ум е да видим какво има в системата, след като веднъж сме се идентифицирали в нея и притежаваме определни права. Тук е моментът да се запознаем с командата ls(1). Това е една от основните команди на Linux. Това, което тя прави е да покаже списък (list -- ls, връзката е ясна) от файлове. Когато изпълняваме ls(1) без параметри по подразбиране се показва списъка с файловете от текущата директория. Нека опитаме:

manchev@shodan:~$ls
manchev@shodan:~$

Ма