четверг, 7 ноября 2013 г.

Ubuntu: Строение файловой системы

      Прежде чем мы начнём разбирать строение файловой системы Ubuntu, мне хотелось бы отметить, что структура любой системы основанной на ядре Linux, это файлы, файлы и ещё раз файлы. Все файлы системы Linuxнаходятся в свободном доступе для просмотра любому пользователю и редактированию - суперпользователю/администратору (он же - root), т.е. пользователю который при установке системы ввёл свой логин и пароль.
Очень часто новые пользователи дистрибутивов Linux задают вопрос: "Зачем нужно постоянно вводить пароль?". Делается это в целях безопасности, так как я уже упоминал выше, что вся файловая система находится в открытом доступе и вводить пароль нужно лишь в том случае, когда производятся действия по редактированию/изменению в системе, чтобы другое лицо/пользователь не смог по незнанию или злому умыслу нанести ущерб системе. Думаю мы с этим вопросом разобрались.



      В операционных системах Linux и Ubuntu в частности, вся файловая система имеет организованную, конкретную структуру. Начинающие пользователи, только мигрировавшие с Windows на Linux, как правило, испытывают определенные трудности, в связи с отсутствием четкого представления о принадлежности каждого каталога/папки, сожержащего те или иные файлы. 

      В Ubuntu все папки с файлами находятся в файловом менеджере Nautilus (в разных дистрибутивах применяются другие файловые менеджеры, но строение файловой системы остаётся неизменным). По умолчанию Nautilus открывается в Домашней папкепользователя (/home):


      В Домашней папке любой пользователь может производить необходимые действия: добавление, изменение, копирование, перемещение и другие действия над файлами без ввода пароля.

      Теперь переходим к строению и содержанию файловой системы Ubuntu:


      Если перейти на компактный вид каталогов/папок (указано стрелкой в правом верхнем углу окна), то скорее всего вы обратите внимание, что расположение папок находится в простом  алфавитном порядке (латин.) по их названию, а не в каком-то иерархическом (по рангу):


      Далее рассмотрим конкретно, что хранится в том или ином каталоге.

     Примечание

Косой чертой (/) или слешем в Linux обозначается каталог/папка. Это надо запомнить.
Иногда многие админы на своих ресурсах каталог ещё называют директорией. Директория или directory, что в переводе с английского значит - каталог/папка.


/bin
В этом каталоге содержатся исполняемые файлы самых необходимых утилит, которые требуются для корректной работы операционной системы Ubuntu.

/boot
Этот каталог хранит ядро операционной системы и карты загрузки, а также конфигурационные файлы загрузчиков.

/cdrom
В этот каталог монтируется диск, вставленный в CD-ROM.

/dev
Содержит файлы особого типа, предназначенные для обращения к системным ресурсам и устройствам.

/etc
В этом каталоге содержится информация о пользователях, доступных ресурсах, настройках различных программ.

/home
Здесь располагаются домашние каталоги пользователя, отсюда и название "home". Отделение файлов пользователея, от других системных файлов дает очевидный плюс, т.к в случае сбоя или повреждения системы, файлы пользователя не будут затронуты.
А также хранятся различные настройки конкретного пользователя в скрытых файлах и папках.

/lib
В этом каталоге хранятся библиотеки, которые нужны для работы важных системных утилит.

/media
Каталог, в который монтируются файловые системы.

/mnt
Каталог для временного подключения файловых систем на съемных носителях (CD-диски, USB-флэшки, внешние ж/диски). Обычно используется для временного монтиования.

/opt
Каталог для дополнительного программного обеспечения.

/proc
Все файлы в этом каталоге "виртуальные". То есть, они хранятся в оперативной памяти. В файлах содержится информация о программах (процессах), выполняемых в данный момент в системе.

/root
Каталог администратора (пользователя root). Домашний каталог админа размещается отдельно от других домашних каталогов из-за того, что каталог /home может располагаться на отдельном устройстве, которое может быть не доступно. Каталог /root должен быть доступен всегда.

/sbin
Каталог системных утилит. Здесь содержаться программы нужные для загрузки, восстановления системы, резервного копирования. Права на исполнение этих программ только у суперпользователя.

/srv
Данные для сервисов и услуг (FTP, HTTP ...).

/sys
Средства для изменения конфигурации системы. Информация об устройствах ядра Linux.

/tmp
Каталог для хранения временных файлов, которые создаются запущенныеми программами или процессами. Каталог /tmpсамоочищается при каждой перезагрузке системы.

/usr
Это родительский каталог важных подкаталогов: /usr/bin; /usr/lib; /usr/local; /usr/sbin; /usr/share; /usr/src.

/var
Хранится информация, которая создаётся в процессе работы программами и необходимая для передачи другим программам и системам. В нём находятся следующие подкаталоги: /var/cache; /var/lib; /var/lock; /var/log; /var/mail; /var/metrics; /var/opt; /var/run; /var/spool; /var/tmp.

Автор: 

вторник, 5 ноября 2013 г.

Установить/обновить ядро Linux Kernel 3.12 (Stable) в Ubuntu/Linux Mint

Linux Kernel 3.12 является первым стабильным выпуском ядра версии 3.12. Вы можете скачать соответствующие deb пакеты ОТСЮДА и установить их в Центре приложений Ubuntu.  Или просто следуйте приведенным ниже инструкциям, которые помогут вам установить новое ядро несколькими командами в терминале.
Что нового в Linux Kernel 3.12 можно посмотреть ЗДЕСЬ

Установить ядро версии 3.12 командами ниже, можно ​​в следующих дистрибутивах Linux:


   Ubuntu 13.10/13.04/12.10/12.04 и старше
   Linux Mint 16/15/14/13 и старше


Установка ядра Linux Kernel 3.12

1. Откройте терминал, скопируйте и выполните одну из команд, согласно архитектуры вашей системы/компьютера, НА СВОЙ СТРАХ И РИСК:

Для 32-bit (одной командой):

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200_3.12.0-031200.201311031935_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_i386.deb  && sudo dpkg -i *.deb


Для 64-bit (одной командой):

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200_3.12.0-031200.201311031935_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb 
&& sudo dpkg -i *.deb 

2. Обновите GRUB (GRUB надо обновлять в той системе Linux где он установлен, если у вас их более одной)

sudo update-grub

Примечание 1. Если у вас установлен загрузчик BURG, то и его нужно обновить:

sudo update-burg

3. По окончании установки, закройте все приложения и перезагрузите компьютер следующей командой:

sudo reboot

После входа в систему, проверьте версию актуального ядра командой:

uname -r 

Как вернуться к ранее установленному ядру, инструкция ЗДЕСЬ.

Если вы решили удалить ядро 3.12, выполните эту команду: 

sudo apt-get purge linux-image-3.12*

Восстановление системы после установки нового ядра в Ubuntu 12.10/12.04/11.10/Linux Mint 14/13

По этой инструкции восстанавливаем неработающую систему после обновления ядра.
Эта инструкция предназначена для следующих дистрибутивов:

1. Ubuntu 12.10/12.04/11.10 и старше
2. Linux Mint 14/13 и старше

                                                           Итак приступим:

  Прежде всего нужно перезагрузить компьютер и при появлении загрузчика GRUB, клавишей со стрелкой вниз (в GRUB мышка не работает), перейти к строке Previous Linux versions и нажать Enter:



Должен открыться перечень ранее установленных ядер в вашей системе (пример):



Выберите верхнее (как на снимке), т.к. это предыдущее ядро на котором вы устанавливали новое ядро и нажмите Enter для загрузки системы. Когда система загрузится, удалите ядро на котором система не загрузилась. Для этого откройте терминал и выполните следующую команду:

sudo apt-get purge linux-image-x.x.x*

Замените ххх на версию ядра Linux, которое вы установили (3.5.3, 3.4.8, 3.4.0 и т.д.).

    После этого в загрузчике GRUB больше не будет отображаться удалённое ядро и система должна загружаться нормально.

воскресенье, 3 ноября 2013 г.

Ubuntu - настройка pdnsd

Как известно, скорость загрузки страниц зависит не только от ширины канала, который предоставляет вам ваш интернет-провайдер, но и от такого важного параметра как время задержки (Латентность или Latency). Не буду об этом долго распространятся, замечу только, что из-за наличия задержки при увеличении полосы пропускания вашего интернет-канала с 5 Мб/с до 10 Мб/с скорость загрузки может увеличится всего на 5%, что красноречиво демонстрируют следующие графики:

Отчасти проблему с задержками может решить кэширование запросов к DNS. Для этих целей в Ubuntu есть несколько пакетов:
  • dnsmasqd - начиная с версии Ubuntu 12.04 установлен по умолчанию, кэш держит только в памяти, поэтому хранит адреса только до первой перезагрузки
  • bind - подходит для больших сложных систем, не очень быстрый
  • pdnsd - легкий в настройке и быстрый - его мы и будем устанавливать

Установка pdnsd
    sudo apt-get install pdnsd  

Запуск
  1. sudo service pdnsd start  

Настройка многократно описывалась на разных сайтах, см. например Делаем свой локальный DNS (PDNSD), с блэкджеком и быстрее Google Public DNS.

Я же сосредоточусь на возможных проблемах

Проверку состояния pdnsd можно выполнить с помощью следующей команды:
  1. sudo pdnsd-ctl status  

при этом я получил следующую ошибку:
Error: could not open socket /var/cache/pdnsd/pdnsd.status: No such file or directory

Решение

Во-первых пробуете вручную запустить pdnsd
  1. sudo service pdnsd stop  
  2. sudo pdnsd  

и по результату определяем в чем именно проблема. Например, в моем случае было вот что:

* 04/09 01:54:22| pdnsd: error: Could not bind tcp socket: Address already in use
* 04/09 01:54:22| pdnsd: error: Could not bind to udp socket: Address already in use
* 04/09 01:54:22| pdnsd: error: tcp and udp initialization failed. Exiting.

Дальше ищем что пишут об этой ошибке в интернете. Одной из причин может быть то, что порт с которым по-умолчанию работает pdnsd, может быть занят. Чтобы это проверить выполняем:
  1. sudo netstat -lpn | grep 127.0.0.1:53  
получаем:

tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3453/dnsmasq
udp 0 0 127.0.0.1:53 0.0.0.0:* 3453/dnsmasq

откуда видно, что порт 53 уже занял демон dnsmasq 

Для того чтобы освободить порт редактируем NetworkManager.conf
  1. sudo gedit /etc/NetworkManager/NetworkManager.conf  

и закомментируем строчку
  1. dns=dnsmasq  
следующим образом
  1. #dns=dnsmasq  

Сохраняем файл и перезагружаем network-manager
  1. sudo service restart network-manager  

И снова запускаем pdnsd
  1. sudo service pdnsd start  

для проверки времени обработки запроса к dns можно использовать команду dig
  1. dig @127.0.0.1 ubuntu-forward.blogspot.com | grep "Query time"  
Query time: 55 msec

повторный запрос выполняется почти мгновенно:
Query time: 0 msec

Для того, чтобы все запросы с вашего компьютера направлялись через pdns, в настройках подключения network-manager нужно в графе 
DNS Servers указать 127.0.0.1

И снова проверить работу pdnsd уже без указания какой именно сервер использовать
  1. dig ubuntu-forward.blogspot.com | grep "Query time"  

Query time: 0 msec

Для проверки реальной скорости работы pdnsd в рабочих условиях можно использовать namebench.

суббота, 2 ноября 2013 г.

Как создать свой Linux-дистрибутив?

article113.jpg

Как создать свой Linux-дистрибутив?

Практически с каждым днем в сети появляется все больше и больше новых дистрибутивов Linux, которые в большинстве своем базируются на самом известном дистрибутиве - Ubuntu. Конечно, не все они слишком отличаются от своего родителя, однако, например, тот же форк Ubuntu - Linux Mint - на мой взгляд, просто превосходен. А что, если собрать свой дистрибутив? Конечно, не такой отличительный, как Mint от Ubuntu, но все же свой, подстроенный под себя и свои нужды? Попробуем?
А поможет нам в этом Novo Builder!
Novo Builder - это простой инструмент Debian GNU/Linux, позволяющий на базе существующего дистрибутива построить полнофункциональную и готовую для установки систему, не требуя от вас предварительного изучения всех аспектов сборки дистрибутивов.
Но хочу сразу заметить, Novo Builder поддерживает пересборку только базирующихся на Debian дистрибутивов (список дистрибутивов, основанных на Debian, вы можете посмотреть по карте дистрибутивов).

Установка

Для установки Novo Builder введите в консоли следующие команды от прав root'а (предварительно авторизовавшись с помощью команды su):
wget -O - http://www.cyvoc.net/novo-repo/Cyvoc.key | apt-key add -
echo deb http://www.cyvoc.net/novo-repo stable main non-free > /etc/apt/sources.list.d/cyvoc.list
apt-get update && apt-get install novo-builder novo-preset-lastos
После установки запустите Novo Builder из меню приложений, потребуется ввести пароль пользователя.

Работа с программой

Теперь можно либо выбрать уже настроенный preset, либо создать собственный вариант на основе существующего дистрибутива. Легче, конечно, воспользоваться готовой предустановкой, для этого в главном окне программы выберите в списке «Preset» базовый дистрибутив.
Если же вы хотите обойтись без предустановок, собрав собственный дистрибутив на основе существующего, заполните остальные настройки. После чего нажмите на кнопку «Prepare» («Подготовить»), сразу замечу, что это не быстрый процесс.
После подготовки станут доступными пункты меню из раздела «Edit/View». В нем вы можете отредактировать файлsources.list, включив в него нужные вам репозитории, добавить скрипты, и даже изменить ядро, оформление и приложения по умолчанию.
После того, как дистрибутив будет готов к сборке, нажмите кнопку «Build Base» в разделе «Build», это создаст базовую систему. Процесс тоже весьма не быстрый.
По окончанию сборки базовой системы станет доступен раздел «Post Build». Теперь можно открыть менеджер Synaptic и устанавливать/удалять приложения в зависимости от ваших предпочтений.
После того, как вы закончите выбор пакетов, вы сможете посмотреть на работу своего дистрибутива перед его окончательной сборкой, для этого просто нажмите кнопку «Chroot GUI».
Если все работает так, как надо, жмем заветную кнопку «Build ISO» для сборки окончательного образа дистрибутива. Забрать его вы сможете в директории /home.
При работе с программой может понадобиться до 30-40 GB свободного места на жестком диске, обратите на это внимание. Чтобы освободить место на диске после работы с программой, нажмите кнопку «Unmount/Del», это отмонтирует и удалит созданный вами образ дистрибутива.
С помощью Novo Builder вы сможете собрать собственный дистрибутив, включив в него только лучшие бесплатные программы, а самое главное - нужные вам, а также исключить те, которыми вы никогда не пользуетесь.
Удачных экспериментов! ;)