Связаться со мной:
27 заметок с тегом

ubuntu

Стандартное ядро в OVH

В OVH по умолчанию ставится модифицированное датацентром ядро, в котором нет многих нужных модулей. И некоторое ПО не работает. Например virtualbox не запускается с ошибкой типа:

ERROR ../libkmod/libkmod-module.c:1638 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory

К тому же ядро в образах ДЦ зачастую уже «протухшее».

Чтобы все заработало как надо, нужно поставить стандартное ядро из реп.
Смотрим какие ядра есть у нас в репозиториях

# apt search linux-image

Выбираем стандартное ядро stable и устанавливаем.

# apt install linux-image-3.16.0-4-amd64 linux-headers-3.16.0-4-amd64

Затем в /etc/default/grub правим диррективу GRUB_DEFAULT чтобы сервер грузился с нашего ядра.
Делаем

update-grub

и ребутимся

Если все работает правильно, ядро OVH можно вообще удалить.

5 мая   debian   Kernel   ovh   ubuntu   virtualbox

Менеджер версий php для Debian/Ubuntu.

Выкладываю мой скрипт который поможет установить несколько версий php из исходных кодов на ваш сервер. Скрипт делался в первую очередь для Debian и проверялся на Debian 8 x64. Но работает и на Ubuntu. Удобно с помощью скрипта поддерживать актуальные версии php на сервере с вестой, т.к скрипт умеет автоматически обновлять шаблоны весты при сборке.
На debian 7/8 с моими флагами установки без проблем собираются php 5.2 и выше.
На ubuntu 14.04/16.04 по умолчанию собираются php 5.3 и выше. 5.2 при компиляции валится с ошибкой. Поэтому если нужен 5.2 юзайте дебиан.
Что делает скрипт:

  1. При запуске спрашивает какие версии php требуется собрать(версию нужно вводить полностью. Например 7.1.2, а не 7.1. Можно ввести несколько версий через пробел), создавать ли на бинарник php-cgi симлинк в /usr/bin для быстрого доступа. Проверяет наличие на сервере панели vestacp. Если находит её, то спрашивает создавать ли шаблон web для каждой версии.
  2. При первом запуске спрашивает, нужно ли ставить зависимости. Если вы откажетесь от установки зависимостей, то вам нужно их установить самостоятельно. Иначе при сборке вы получите ошибки. При последующих запусках этот шаг пропускается. Нужно понимать что скрипт старается поставить все возможные зависимости, но в разных дистрибутивах могут использоваться разные пакеты или при использовании кастомных флагов компиляции может потребоваться что-то доустановить.
  3. Парсит http://php.net/downloads.php и http://php.net/releases/ на наличие bz2 архива с исходниками указанной юзером версии php. Если находит, скачивает и распаковывает исходники в /opt/php/src.


    Также можно положить архивы с иходниками в /opt/php/src/bzips, тогда скрипт не будет их скачивать.
  4. Конфигурит, по умолчанию с моими параметрами компиляции(подойдут для большинства пользователей). Собирает.

    Тем кто хочет использовать свои параметры компиляции обязательно кликнуть сюда
    Можно свои параметры конфигурирования положить в файл /opt/php/options. Если скрипт находит этот файл, то он использует его для конфигурирования. Свой файл можно сделать на основе моего. Скрипт заменяет version в файле конфигурирования на текущую собираемую версию. Это сделано для того чтобы скрипт автоматом создавал свой каталог для каждой версии. Если вы собираете например версию 5.3.29 и в вашем файле конфигурирования указано prefix=/opt/php/php-version, то это по сути равно prefix=/opt/php/php-5.3.29. При сборке нескольких версий одновременно эту фичу нужно использовать чтобы не собирать все версии в один каталог.
  5. При необходимости создает симлинк и шаблон для весты. Если создает темплейты для весты, то проверяет включен ли модуль cgi в апаче. Если модуль не включен, то включает его.

Запустить скрипт очень просто

# git clone https://github.com/petranikin/mgrvphp.git
# cd mgrvphp
# bash mgrvphp

Немного скриншотов

2017   debian   mgrvphp   php   php7   phpmgr   ubuntu   vesta control panel   vestacp

Простая установка OpenVPN сервера с помощью QuickOpenVPN.

QuickOpenvpn тулза для быстрого разворачивания OpenVPN сервера и генерации клиентских конфигов, сертификатов и ключей. Адрес на github https://github.com/shmulya/quickopenvpn

Рассмотрим установку на Ubuntu 14.04.
Заходим на сервер по ssh и устанавливаем нужные пакеты

# apt-get install python-pip openssl openvpn git
# pip install pyyaml

Скачаем установщик тулзы

# git clone https://github.com/shmulya/quickopenvpn.git

Переходим в каталог установщика и запускаем установку

# cd quickopenvpn
# python install.py

Установщик задаст несколько вопросов(email, где разместить ключи, пароль для веб-морды и т.д), отвечаем на них и дожидаемся генерации всех ключей и завершения установки. Также если вы используете именно Ubuntu 14.04 тулза спросит переместить ли конфиг в /etc/openvpn и запустить ли vpn-сервер. На других дистрах эта функция не реализована и придется все делать вручную, поэтому рекомендую именно Ubuntu 14.04. Также спросит разрешить ли форвардинг пакетов и добавить ли правило натирования в iptables. Отвечаем на все «y», и по окончанию работы тулзы мы получим полностью настроенный и работающий OpenVPN сервер.
Для старта веб-морды выполняем

./start

И заходим на https://ip_сервера:4443/ там логинимся с паролем который мы указали при установке

Жмакаем «Add» для добавления клиентского сертификата, указываем имя сертификаты. И после генерации мы сможем скачать архив со всем необходимым для подключения к серверу.

Жмакаем «Download» и получаем архив. На клиенте устанавливаем OpenVPN, распаковываем архив в /etc/openvpn. Не забываем в конфиге клиента поправить пути к ключам и сертификату. И стартуем сервис.
Видим что появился новый интерфейс и сервер пингуется. Значит все работает.

2016   openvpn   quickopenvpn   ubuntu

Установка ispmanager 4 на Ubuntu 14.04

Существует ПО которое работает только под определенной ОС. Так вот понадобилось одному клиенту такое ПО, которое работает только под ubuntu 14.04, но при всем при этом клиенту необходимо чтобы на сервере был установлен ispmanager 4. Как мы знаем ispmanager 4 не поддерживает 14 убунту. Придется выкручиваться.
Итак. Стандартно начинаем установку испы

wget "http://download.ispsystem.com/install.4.sh"
sh install.sh

Отвечаем на вопросы установщика и практически сразу получаем ошибку

Can’t get information about available packages

Видим в логе что произошел segmentation fault. Ищем какая либа его вызвала.

cat /usr/local/ispmgr/var/pkgctl.log|grep LoadModule

В последней строчке мы увидим эту либу.

Переименовываем её

mv /usr/local/ispmgr/lib/xxx.so /usr/local/ispmgr/lib/_xxx.so

Затем снова запускаем установку.

/usr/local/ispmgr/sbin/ISPmanager-install.sh

Теперь установка идет относительно нормально, ошибки мы получим только при проверке установленного ПО, т.к панель не умеет работать с апачем 2.4. Ну и ладно, главное панель установилась. Теперь нам нужно установить апач 2.2 вместо 2.4 для корректной работы панели.
Апач 2.2 мы возьмем в репозиториях 12 убунты.
Создаем файлы с содержимым
/etc/apt/sources.list.d/ubuntu1204.list

deb http://ru.archive.ubuntu.com/ubuntu/ precise main

/etc/apt/preferences.d/apache22

Package: apache*
Pin: release a=precise
Pin-Priority: 500

/etc/apt/preferences.d/libapache

Package: libapache*
Pin: release a=precise
Pin-Priority: 500

Выполняем

apt-get update

Затем идем в меню Возможности isp панели и удаляем апач. После удаления нужно подчистить оставшееся за панелью. Выполняем

apt-get purge apache2*

Все. Теперь идем в меню Возможности и жмакаем установить веб-сервер Apache. Установится apache 2.2. Далее доустанавливаем необходимое ПО, такое как php, phpmyadmin, webmail. Все это ПО не установилось по умолчанию, т.к оно не может работать без апача 2.2. Лучше также сразу установить nginx.

Есть ещё один ньюанс, не установится модуль апач для php, соответственно сразу после установки нужно удалить старые конфиги для webmail и phpmyadmin. Создать пользователя default-user и у него домен default.domain, которому разрешён php как cgi. И соответсвенно создать симлинки в каталог виртуалхоста юзера.

ln -s /usr/share/squirrelmail/ /home/default-user/data/www/default.domain/webmail
ln -s /usr/share/phpmyadmin /home/default-user/data/www/default.domain/myadmin

Придется смирится что myadmin и webmail будут работать по http, а не по https.
Также возможно придется поправить некоторые ошибки в конфигах squirrelmail и phpmyadmin, что выходит за пределы этой статьи.

А вообще лучше не использовать все эти пляски с бубном, и отказаться от устаревшей продукции isp. Например в пользу панели VestaCP.

2016   isp   isp-manager   ispmanager   ispmgr   ubuntu

Мультиверсионность php на сервере с VestaCP.

Можно использовать скрипт который упрощает установку разных версий php
Сделаем возможность использовать несколько разных версий php на одном сервере c Ubuntu 14.04 и VestaCP. Возможность переключать версию php будет для каждого сайта отдельно. По умолчанию в ubuntu 14.04.4 с вестой установился php 5.5.

Все действия производятся под root’ом.
Соберем старый php 5.4.
Установим необходимые пакеты.

apt-get build-dep -y php5
apt-get install libt1-dev libonig-dev libmcrypt-dev libreadline-dev

Создаем каталог для исходников

mkdir /php/
mkdir /php/src

Скачиваем туда сорцы с http://php.net.

wget -O /php/src/php-5.4.45.tar.bz2 http://de1.php.net/get/php-5.4.45.tar.bz2/from/this/mirror
cd /php/src/
tar -xjf php-5.4.45.tar.bz2
cd php-5.4.45

И создаем каталог куда будем собирать php

mkdir /php/php54

Конфигурим(обратите внимание на переменную —prefix=, она указывает на каталог куда собираем php)

./configure \
--prefix=/php/php54 \
--with-config-file-path=/etc \
--with-regex=php \
--disable-rpath \
--disable-static \
--with-pic \
--with-layout=GNU \
--enable-calendar \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-bcmath \
--with-bz2 \
--enable-ctype \
--with-cdb \
--with-iconv \
--enable-exif \
--enable-ftp \
--with-gettext \
--enable-mbstring \
--with-onig=/usr \
--with-pcre-regex=/usr \
--enable-shmop \
--enable-sockets \
--enable-wddx \
--with-libxml-dir=/usr \
--with-zlib \
--with-kerberos=/usr \
--with-openssl=/usr \
--enable-soap \
--enable-zip \
--with-mhash=yes \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--enable-pdo \
--with-pdo-mysql=mysqlnd \
--enable-exif \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-freetype-dir=/usr \
--with-t1lib \
--with-zlib-dir=/usr \
--with-mcrypt=/usr \
--with-mhash \
--with-xsl=/usr \
--enable-zip \
--enable-cgi \
--with-curl \
--with-gd \
--enable-pcntl \
--enable-mbregex \
--enable-gd-native-ttf \
--with-libdir=lib64 \
--enable-dba=shared \
--enable-intl \
--with-readline=/usr \
--enable-simplexml \
--with-libdir=/lib/x86_64-linux-gnu \
--with-config-file-scan-dir="$instdir"/etc \
--with-pspell

Компиляем

make
make install

Включаем модуль cgi для апача

a2enmod cgi

Переключать будем шаблонами apache. Скопируем существующий шаблон phpcgi

cp /usr/local/vesta/data/templates/web/apache2/phpcgi.sh /usr/local/vesta/data/templates/web/apache2/php54.sh
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.stpl /usr/local/vesta/data/templates/web/apache2/php54.stpl
cp /usr/local/vesta/data/templates/web/apache2/phpcgi.tpl /usr/local/vesta/data/templates/web/apache2/php54.tpl

Открываем файл /usr/local/vesta/data/templates/web/apache2/php54.sh и находим там строку

wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'

заменяем на

wrapper_script='#!/php/php54/bin/php-cgi -cphp5-cgi.ini'

И перезапускаем весту

service vesta restart

Теперь если зайти в весте в редактирование домена в web, то в шаблонах апача можно увидеть новый шаблон php54. Можно попробовать переключится.

Аналогично собираем php 5.6 и php 7.0, в каталоги /php/php56 и /php/php70 соответсвенно. И создаем для них шаблоны php56 и php70. Конфигурирование для php7 несколько отличается от php5. Мои параметры для конфигурирования есть в этой статье.

В результате этих манипуляций у нас появятся новые шаблоны php54, php56 и php70, с соответсвующими версиями php. Теперь для каждого домена мы можем выбрать любую версию php от 5.4 до 7.0. С выходом новых версий их можно добавлять к текущим таким же способом.

2016   php   php7   ubuntu   vesta control panel   vestacp

Установка virtualbox с web-интерфейсом на сервер.

Имеем сервер на ubuntu 14.04. Нужно установить virtualbox с веб интерфейсом, чтобы установить несколько виртуальных машин на сервер.

Установка virtualbox.

Для начала установим сам virtualbox последней версии с репозиториев oracle.
Добавляем репозиторий и импортируем ключ

# echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee -a /etc/apt/sources.list
# wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

Устанавливаем virtualbox и модули ядра

# apt-get update
# apt-get install dkms virtualbox-5.0

Установим пакет дополнений гостевой ОС. Смотрим версию virtualbox

# vboxwebsrv -V
Oracle VM VirtualBox web service Version 5.0.2
(C) 2007-2015 Oracle Corporation
All rights reserved.
5.0.2r102096

И на этой странице берем ссылку для дополнений для нужной нам версии.
Скачиваем

# wget http://download.virtualbox.org/virtualbox/5.0.2/Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack

И устанавливаем

# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack

Теперь создадим юзера, под которым будут работать наши виртуальные машины и добавим его в группу vboxusers

# adduser vbox
# usermod -a -G vboxusers 'vbox'

Не забываем пароль, который мы назначили пользователю vbox. Он нам ещё потребуется.
Настраиваем веб-сервис virtualbox

# nano /etc/default/virtualbox
VBOXWEB_USER=vbox #пользователь под которым работает virtualbox
VBOXWEB_HOST=xxx.xxx.xxx.xxx #ip
VBOXWEB_PORT=18083 #порт для веб-сервиса

Запускаем веб-сервис

# service vboxweb-service stop
# service vboxweb-service start

Установка web-интервейса.

Для работы веб интерфейса нам потребуется веб-сервер(мы будем использовать nginx) и php. Установим их.

# apt-get install nginx php5-common php5-fpm php-pear


Для ubuntu 16.04 кликнуть сюда

# apt-get install nginx php-common php-fpm php-pear php-soap


Создадим каталог для виртуального хоста.

# mkdir /var/www && mkdir /var/www/phpvirtualbox

На этой странице мы можем получить ссылки на архивы веб-интерфейса phpvirtualbox для разных версий virtualbox. В данном случае скачиваем и распаковываем в каталог виртуального хоста phpvirtualbox для нашей версии.

# cd /var/www/phpvirtualbox/ && wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-5.0-2.zip/download && mv download phpvirtualbox-5.0-2.zip
# unzip phpvirtualbox-5.0-2.zip && mv ./phpvirtualbox-5.0-2/* /var/www/phpvirtualbox

Копируем пример конфига

# cp /var/www/phpvirtualbox/config.php-example /var/www/phpvirtualbox/config.php

И редактируем

# nano /var/www/phpvirtualbox/config.php
# Пользователь и пароль под которым работает virtualbox
var $username = 'vbox';
var $password = 'PaS$w0rd';

# Адрес веб-сервиса
var $location = 'http://xxx.xxx.xxx.xxx:18083/';

# Диапазон rdp портов
var $vrdeports = '9000-9100';

# IP сервера
var $consoleHost = 'xxx.xxx.xxx.xxx';

Создаем файл виртуального хоста в nginx

# nano /etc/nginx/conf.d/phpvirtualbox.conf
server {
        listen   xxx.xxx.xxx.xxx:80;
 
        root /var/www/phpvirtualbox/;
        index index.php index.html index.htm;
 
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
 
 
        # pass the PHP scripts to FastCGI server listening on 1$
        #
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+.php)(.*)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
 
}


Для ubuntu 16.04 конфиг такой

server {
        listen   XXX.XXX.XXX.XXX:80;

        root /var/www/phpvirtualbox/;
        index index.php index.html index.htm;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }


        # pass the PHP scripts to FastCGI server listening on 1$
        #
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+.php)(.*)$;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

}


Перезапускаем nginx

# service nginx restart

Теперь перейдя по адресу http://ip-сервера/ мы увидим форму логина. По умолчанию логин — admin и пароль — admin. Логинимся, открываем меню File, пункт Preferences и меняем пароль в графе Users. В графе Language можно поставить русский язык.

Установка виртуальной машины.

Скачиваем установочный образ нужной нам ОС(в данном случае debian 8) в домашний каталог юзера vbox

# cd /home/vbox/
# wget http://mirror.yandex.ru/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-CD-1.iso

Затем в веб-интерфейсе, кликаем кнопку создать и создаем виртуальную машину с нужными нам характеристиками.

Переходим в настройки виртуальной машины — Дисплей. И во вкладке «Удаленный дисплей» включаем доступ по rdp с нужными нам данными авторизации и портом.

Запускаем нашу виртуальную машину. При первом запуске она спросит установочный iso образ, который мы скачали в домашний каталог пользователя vbox.

После запуска виртуальной машины мы можем подключится любым rdp клиентом к хост-машине по порту указанному в настройках удаленного дисплея и продолжить установку как обычно. Также можно подключится прямо через веб-интерфейс, просто кликнув «Консоль» справа сверху.

2015   phpvirtualbox   ubuntu   virtualbox

Установка i2p на удаленном сервере.

Нужно было поставить i2p на удаленный сервер c ubuntu 14.04, чтобы можно было ходить в i2p для всех vpn клиентов openvpn сервера установленного на нем. С момента написания моей предыдущей статьи на эту тему i2p заметно продвинулся вперед в плане юзабельности и установка стала гораздо проще. Поэтому пишу эту статью.
В первую очередь я поднял openvpn сервер, как это сделать написано в этой статье.
Затем устанавливаю i2p.

# apt-add-repository ppa:i2p-maintainers/i2p
# apt-get update
# apt-get install i2p

Следующей командой создаем и стартуем i2p-демон

# dpkg-reconfigure -plow i2p

Установка закончена.
Теперь прокидываем порт и настраиваем подписки и скорость подключения, это описано в предыдущей статье, повторятся не буду.
Раз мы используем vpn, то прокси нужно повесить на интерфейс openvpn. Для этого в управлении сервисами, для I2P HTTP Proxy нужно вместо 127.0.0.1 указать ip openvpn сервера, в моем случае это 10.8.0.1.

Все. Теперь чтобы ходить в i2p, нужно на клиентском компьютере в браузере указать прокси 10.8.0.1 порт 4444. У себя я делаю разграничение по шаблонам через foxyproxy в firefox. Т.е все сайты ходятся по умолчанию без прокси, а сайты с доменом .i2p foxyproxy заруливает на 10.8.0.1:4444.

До этого я использовал другую настройку, она более удобна но несколько сложна. На сервере поднимал bind, который заруливал все домены i2p на локальный ip сервера. Виртуалхост в nginx, заруливал все эти домены на прокси i2p-роутера. В итоге у vpn клиентов не надо было производить вообще никаких настроек, просто можно было ввести в любом браузере адрес i2p сайта и сервер сам его направлял на прокси. Но теперь у меня i2p обитает на достаточно слабом сервере и я не стал его напрягать ещё и bind’ом с nginx’ом. Поэтому использую foxyproxy.

2015   i2p   i2p-router   ubuntu

Изолируем пользователей ssh в домашней директории с помощью lshell

Установим lshell, он есть в репозиториях большинства дистрибутивов. Установка для дебианоподобных дистров:

# apt-get install lshell

Затем открываем конфигурационный файл и редактируем

# nano /etc/lshell.conf

Там в основном все просто и понятно, обратим внимания на некоторые переменные в разделе [default].
Команды разрешённые для выполнения:

allowed         : ['ls','echo','cd','ll','rsync','mkdir']

В allowed нельзя вписывать программы которые умеют бродить по каталогам например mc, т.к из lshell выполнение передается в bash и такие программы смогут выйти за пределы домашнего каталога. Поэтому тут будьте внимательны.

Команды которые можно выполнять через ssh:

overssh         : ['ls','rsync']

В конце конфигурационного файла можно указать индивидуальные настройки для определенного юзера примерно так:

[user]
allowed: ['ls','echo','cd','ll','rsync','mkdir','cp','mv']
path: ['/backups']
overssh: ['ls', 'rsync']

Тут например мы разрешили пользователю user выполнять команды указанные в allowed, кроме домашней папки он может ходить в /backups, и может выполнять по ssh ls и rsync.

После редактирования сохраняемся и и закрываем файл.
Теперь нужно изменить shell у пользователей, которых мы ограничиваем.

# chsh -s /usr/bin/lshell user
# chsh -s /usr/bin/lshell user1
# chsh -s /usr/bin/lshell user2
.....

Теперь пробуем зайти по ssh user’ом и проверяем, что он изолирован в домашней папке и может выполнять только команды указанные в allowed.

2015   centos   debian   lshell   ssh   ubuntu

Перенос linux на другой диск на примере debian/ubuntu

Навеяно статьей про перенос freebsd на другой диск. Будем делать тоже самое но на linux. В linux все несколько сложнее.

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

# mkfs.ext4 /dev/sdb1

Затем примонтируем его в /mnt

# mount /dev/sdb1 /mnt

Теперь нам нужно создать дампы разделов, в данном случае нужно создать только дамп sda1. Установим утилиты dump/restore.

# apt-get install dump

И создаем дамп раздела в файл /mnt/root.img

# dump -0f /mnt/root.img /

Создание дампа в /mnt/root.img возможно когда на разделе используется менее 50% от /dev/sdb1. Иначе на разматывание дампа места не хватит. В остальных случаях нужно создавать дамп в другом месте, но не в разделе корня, чтобы дамп не мотал сам себя. Можно использовать раздел другой тачки примонтированный по sshfs, я проверял это прекрасно работает.
Переходим в /mnt и разматываем дамп.

# cd /mnt
# restore -rf /mnt/root.img

Как видим раздел перенесся на /dev/sdb1. Если у нас /boot на отдельном разделе, то переносим его аналогично.

Теперь нам нужно установить загрузчик.

# grub-install --root-directory=/mnt /dev/sdb

Затем если требуется правим /mnt/etc/fstab и меню grub в /mnt/boot/grub/grub.cfg.

# nano /mnt/etc/fstab
# nano /mnt/boot/grub/grub.cfg

Тут немного поясню зачем проверять и править эти файлы. У меня например в этих файлах были прописаны uuid разделов, и если мы уберем старый диск то ОС соответственно не загрузится, т.к у новых разделов у нас другие uuid. Я вместо uuid прописал реальные устройства корня и свопа /dev/sda1 и /dev/sda3. Все устройства sdb, станут у нас sda после извлечение первого диска.

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

P.S. Утилиты dump и restore не ограничиваются переносом ОС с одного диска на другой. Таким образом можно переносить linux вообще на другую тачку с другим железом и дисками. Процедура почти такая же за небольшими изменениями.

  1. На первой тачке создаем дамп ОС;
  2. Загружаем вторую тачку с livecd;
  3. Размечаем и форматируем диски;
  4. Копируем туда дамп c первой тачки(по scp, например);
  5. Разворачиваем дамп с помощью restore;
  6. Устанавливаем загрузчик;
  7. Загружаемся.
2015   centos   debian   dump   Linux   restore   ubuntu

Установка облака mail.ru в linux

Теперь облако mail.ru распространяется не бинарником, как я описывал в предыдущей статье, а установочными файлами под разные дистрибутивы. Список дистрибутивов и ссылки на установочные файлы здесь.

Установка теперь очень простая. Например под Ubuntu 14.04 LTS скачиваем установочный .deb пакет и выполняем в консоли

$ sudo dpkg -i mail.ru-cloud_15.04.0021-trusty_amd64.deb

Или просто запускаем через центр приложений ubuntu.
После установки бинарник будет находится в /usr/bin/cloud, приложение будет в меню Dash, а после запуска иконка появится в трее.

2015   cloud   cloud.mail.ru   Linux   ubuntu   Облако
Ctrl + ↓ Ранее