FAQ - Frequently Asked Questions - Часто Задаваемые Вопросы. Мой FAQ собран проблемах и ошибках моих сотрудников при работе с Linux-ом в нашем офисе. В основном он относится к использованию дистрибутивов AltLinux , но должен подходить к любому Linux-у.
Установка/восстановление Linux
MySQL
Я переустановил Windows и не могу загрузиться с Linux.
Что ж, умельцы из Microsoft даже не представляют, что на компьютерах может стоять что-нибудь кроме Windows, и поэтому их система во время установки перезатирает стартовый сектор диска, вписывая туда свою программу-загрузчик. Этот загрузчик игнорирует ранее стоявшие системы и умеет загружать только Windows. Исправление ситуации очень примитивно:
- запускаетесь с дистрибутивного CD-диска,
- загружаетесь в режиме восстановления системы
- получив приглашение системы, вводите команду chroot /mnt
- вводите команду lilo
- Ура, загрузочная запись восстановлена!
В последних версиях Linux, где файлы устройств в /dev динамически создаются при загрузке, действия немного усложнились.
Предположим, что корень вашей системы с Linux расположен на /dev/sda3. Тогда после загрузки в режиме восстановления системы:
- # Делаем каталог, куда вмонтируем нашу файловую систему
mkdir /mnt/my - # Монтируем файловую систему
mount /dev/sda3 /mnt/my - # Вставляем в нашу файловую систему каталог /proc от текущей загруженной системы:
mount /proc /mnt/my/proc -o bind - # Вставляем в нашу файловую систему каталог /dev со всеми файлами устройств от текущей загруженной системы:
mount /dev /mnt/my/dev -o bind - # Подменяем корень текущей системы:
chroot /mnt/my - # Восстанавливаем загрузчик
cd /boot/grub
grub-mkconfig >grub.cfg
grub-install --no-floppy /dev/sda
update-initramfs -u
Как клонировать диск с Linux?
- Создать на нём такие же разделы(fdisk), как и на исходном диске, и создать файловые системы (mkfs).
- Смонтировать их. Например, корневой раздел на исходнике у нас /dev/sda2, а на клоне пока что /dev/sdb2
mkdir /mnt/sdb2
mount /dev/sdb2 /mnt/sdb2 - Перейти в корневой каталог и скопировать файлы с него на корневой раздел клона:
cd /
find . -xdev | cpio -pm /mnt/sdb2 - Скопировать из /dev файлы устройств "console" и "null" в /mnt/sdb2/dev
- Скопировать остальные разделы.
- Запустить blkid, посмотреть UUID корневого раздела и вписать новое значение в /etc/lilo.conf и /etc/fstab.
- Выключить комп, отключить исходный диск, на его место подключить клона.
- Загрузиться с установочного диска в режиме "Восстановление системы" или как там оно называется.
- Смонтируем наш клон диск, подсунем в его динамические каталоги каталоги системы, с которой загрузились(mount -o bind...), и сделаем корневую систему клона корнем(chroot) загруженной системы:
mkdir /mnt/sda2
mount /dev/sda2 /mnt/sda2
mount -o bind /proc /mnt/sda2/proc
mount -o bind /sys /mnt/sda2/sys
mount -o bind /dev /mnt/sda2/dev
chroot /mnt/sda2 - Переходим в каталог /boot и делаем новый образ INITRAMFS (диск в памяти в момент загрузки ядря со всеми необходимыми драйверами для работы ядра Linux на этом новом оборудовании). В Ubuntu:
update-initramfs -u -
Устанавливаем загрузчик на диск. Переходим в каталог /boot/grub.
grub-mkconfig >grub.cfg
grub-install /dev/sda
- Успешно загружаемся с клона.
Диск /dev/sda приведён только для примера.
Установить Linux с флешки
Монтирование NTFS
Как узнать версию X-Window, которая у меня стоит?
Запустить:X -version
Где лежит файл конфигурации X-Window, что делать если его нет?
В каталоге /etc/X11
Для 3-й версии X файл называется XF86Config
Для 4-й версии X файл называется XF86Config-4
Для Xorg файл называетс xorg.conf.
Если файла конфигурации нет, то запустите:
X -configure
Файл будет создан в домашнем каталоге. Вы сможете добавить в него те режимы, которые по умолчанию Xorg не включает.
Как изменить переключатель клавиатуры RU/EN?
1. Правим /etc/X11/XF86Config
или /etc/X11/XF86Config-4
или /etc/X11/xorg.conf
В секции InputDevice для клавиатуры добавляем:
Option "XkbLayout" "us,ru" Option "XkbVariant" ",winkeys" Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll" |
Эти опции описывают раскладки клавиатуры.
Обычно там стоит "grp:caps_toggle" - переключать с помощью клавиши CapsLock, что довольно непривычно и неудобно.
Также через запятую добавим, что индикатором раскладки будет служить лампочка ScrollLock.
2. Выключаем в KDE выбор раскладок клавиатуры.
3. Для современного X-сервера от xorg (версия 1.6.1), который добавляет устройства с помощью службы HAL, к вышенаписанному следует добавить в секции ServerLayout запрет на работу HAL:
Section "ServerLayout"
.................
Option "AllowEmptyInput" "false"
Option "AutoAddDevices" "false"
EndSection
Как повернуть изображение на 90 градусов на втором дисплее, подключенном к Nvidia?
Для KDE3 и KDE4 в момент написания этого пункта FAQа решения были разные.
Nvidia позволяет по-разному работать с двумя дисплеями.
1. Это могут быть отдельные Screen.
2. Это может быть общий дисплей, объединённые технологией TwinView.
3. Это может быть общий дисплей, объединённый расширением Xinerama.
Настройки /etc/rc.d/xorg.conf удобно делать с помощью программы nvidia-settings.
Для KDE3 удобно работать с отдельными Screen.
Чтобы настройки KDE3 позволили поворачивать изображение, в /etc/X11/xorg.conf
надо вручную в секции драйверов вставить опцию "RandrRotation":
Section "Device"
Driver "nvidia"
...
Option "RandrRotation" "on"
EndSection
Ну и перезапустить графическую подсистему.
Для KDE4 немного не так. KDE4.3 пока не умеет работать с отдельными Screen.
TwinView позволяет растягивать Рабочий стол на 2 монитора, но вращать можно
только оба экрана вместе (да и то это не работает, разве что вверх ногами можно крутнуть).
Подходит только Xinerama и доп. опция "Rotate" для того монитора, где изображение
надо крутить в /etc/X11/xorg.conf:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
...
Section "Monitor"
Identifier "Monitor1"
...
Option "Rotate" "CCW"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
....
Option "RandrRotation" "on"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
...
Option "RandrRotation" "on"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "CRT: 1024x768_85 +0+0; CRT: 800x600 +0+0; CRT: 640x480 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP: 1280x1024 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Как сделать автоматический вход пользователя в графической сессии?
Для GDM:
В файле /etc/X11/gdm/custom.conf должно быть:
[daemon]
TimedLoginEnable=true
TimedLogin=user_name
TimedLoginDelay=0
MySQL
Как дать доступ новому пользователю?
GRANT ALL PRIVILEGES ON MYDB.* TO newuser@localhost IDENTIFIED BY 'verysecret'
Как просмотреть список таблиц?
SHOW TABLES;
Как просмотреть список колонок таблицы?
SHOW COLUMNS FROM MYTABLE;