How to mount Linux LVM volume partitions on Linux

So, one of my friends had this weird system breakdown while upgrading Fedora from DVD. Grub couldn’t locate the grub.cfg file. In order to fix the system and take a backup of some important files, we booted in a live session, mounted a lvm partition to find out that most of the data was gone . The end was pretty bad but I think, just like in my case, there will be many more who wouldn’t know how to mount a lvm partition. This little adventure of mine might help you out.

In case you have to do something similar just follow the steps we took.

1) Once we were in live session, we opened a terminal and ran

[root]# fdisk -l

This lists out the partition table of the system and it looked something like this

Device        Boot   Start       End      Blocks           Id     System
/dev/sda1     *        1           4864     39070048+    7     HPFS/NTFS
/dev/sda2            4865       6691     14675377+    83   LVM2_member

2) The good news was that the system was at least able to distinguish the partitions. So, in order to backup the data, the next step was to access the /dev/sda2 partition. But since it is an lvm partition we will had to take some additional steps to mount it.

Now, run the pvs command. Please note that while in live session you may find that this is not installed by default. In order to install the required tools, run the following command.

[shredder12]$ sudo apt-get install lvm2

Of course, you should be connected to internet. Once you are done with this run pvs.

[root]# pvs

This will list the volume groups to which our physical volume /dev/sda2 belonged. It would be of the form

PV               VG                Fmt    Attr    PSize       PFree
/dev/hda2   VolGroup01  lvm2   a-      148.94G   32.00M

The second field, VG, shows the Volume group. The above output is just an example, showing that we are concerned with the Volume group “VolGroup01”. The next step is to list the information about this volume group.

[root]# lvdisplay /dev/VolGroup01

It will throw a bunch of ouput, but the one we are concerned with is LV Name. It will look something like this

LV Name /dev/VolGroup01/LogVol00

In our case, there were two entries of type LV Name, the other being LogVol01, the swap. The whole output along with it will help you to identify the target logical volume you are looking for. Assuming that the above one is the partition that we need to mount, just use the usual method to mount it.

[root]# mount /dev/VolGroup01/LogVol00   /mnt

Now, you can to find the data you were looking for in the /mnt folder.

pppoe Linux

1. yum install rp-pppoe

2. pppoe-setup

 

Accept these settings and adjust configuration files (y/n)? y
Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
(But first backing it up to /etc/ppp/chap-secrets.bak)
(But first backing it up to /etc/ppp/pap-secrets.bak)

Congratulations, it should be all set up!

Type ‘/sbin/ifup ppp0’ to bring up your xDSL link and ‘/sbin/ifdown ppp0’
to bring it down.
Type ‘/sbin/pppoe-status /etc/sysconfig/network-scripts/ifcfg-ppp0’
to see the link status.

Изменение имени сетевых интерфейсов в RHEL/CentOS 7

Внести изменения в файл конфигурации загрузчика, добавить параметры загрузки ядра net.ifnames=0 и biosdevname=0 в строчкуGRUB_CMDLINE_LINUX:

# vi /etc/default/grub
...
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet net.ifnames=0 biosdevname=0"
...

Сгенерировать конфигурациооный файл:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Далее изменить название файла конфигурации сетевого интерфейса, изменить параметр NAME внутри, перезагрузить ОС.

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eno16780032 ifcfg-eth0
# vi ifcfg-eth0
...
NAME=eth0
...

# shutdown -r now

Установка OpenVPN на CentOS 6.4

430  yum install epel-release
  431  yum install openvpn easy-rsa -y
  432  cp /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/server.conf /etc/openvpn
  433  vim /etc/openvpn/server.conf
  434  mkdir -p /etc/openvpn/easy-rsa/keys
  435  cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
  436  vim /etc/openvpn/easy-rsa/vars
  437  cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
  438  cd /etc/openvpn/easy-rsa
  439  source ./vars
  440  ./clean-all
  441  ./build-ca
  442  ./build-key-server server
  443  ./build-dh
  444  cd /etc/openvpn/easy-rsa/keys
  445  cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
  446  cd /etc/openvpn/easy-rsa
  447  ./build-key client

еще одного клиента

cd /etc/openvpn/easy-rsa/
сначала source ./vars
потом ./build-key clientIrk
check nmap -sU -p 1194 amazone2.ddns.net
——————————————————————–

Возникла необходимость быстро и качественно настроить доступ из домашней обстановки в трудовую среду рабочего помещения. Поскольку дома компьютер находится за линией фронта натизации от провайдера, да и на работе локальная подсеть спрятана за забор NAT, то в качестве решения для организации безопасного доступа для вечернего досуга на работе был выбран замечательный продуктOpenVPN, который хорошо справляется с такими препонами. Помимо этого довольно прост (относительно) в настройках и имеет клиентские решения под известные операционные системы и популярные мобильные платформы (отговорка что ты не за компом может быть не актуальной).

В качестве сервера openvpn был взят простенький компьютер с установленной ОС CentOS:

uname -a 
Linux qwert0 2.6.32-358.18.1.el6.i686 #1 SMP Wed Aug 28 14:27:42 UTC 2013 i686 i686 i386 GNU/Linux

 

Установка и настройка сервера OpenVPN

Установка OpenVPN-сервера в дистрибутиве CentOS 6.4 довольно проста:

yum install openvpn

Будет установлена версия openvpn-2.3.2-1.el6.i686 сервера. Так же во время установки будет создана группа openvpn и заведён пользователь openvpn. Перед тем как приступать к настройкам следует проверить сущестуют ли в системе интерфейсы tun/tap. Вводим:

cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state

Обратите внимание на статус: «File descriptor in bad state» — значит здесь всё есть хорошо.
На следующем шаге следует создать дополнительные файлы и каталоги, поменять права и контекст на них:

touch /etc/openvpn/server.conf
touch /etc/openvpn/ip.sv
mkdir /var/log/openvpn
chown openvpn.openvpn /etc/openvpn/*
chcon -u system_u /etc/openvpn/* 
restorecon -v -R  /etc/openvpn/*

Далее файл /usr/share/openvpn/easy-rsa/2.0/vars привести к следущему виду:

Содержимое файла vars

Прознать какая версия openssl стоит в системе:

rpm -qa openssl 
openssl-1.0.0-27.el6_4.2.i686

Переименовать файл /usr/share/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf в /usr/share/openvpn/easy-rsa/2.0/openssl.cnf, чтобы нормально отработали скрипты генерации ключей:

mv openssl-1.0.0.cnf openssl.cnf

Теперь выполняем всё по порядку:

. ./vars

Обратите внимание — две точки через пробел
Удаляем всё и подготовим к генерации каталог /usr/share/openvpn/easy-rsa/2.0/keys:

./clean-all

Создаём файл ca.key — он нужен и серверу и клиенту. Генератор будет задавать различные вопросы, можно жать Enter на всех вопросах:

Генерация файла ca.key

Генерируем сертификат и ключ для сервера:

Сертификат и ключ сервера

Теперь генерируем файл параметров по алгоритму Diffie-Hellman:

Создание файла параметров по алгоритму Diffie-Hellman

Генерируем сертификат и ключ для клиента velowup (такое вот имя у клиентского сертификата):

Создание сертификата и ключа для клиента

И последним создаем общий ключ для клиентов и сервера. Это TLS-ключ:

openvpn --genkey --secret ta.key

Теперь следует создать каталоги в конфигурационной директории для ключей:

mkdir /etc/openvpn/.key
mkdir /etc/openvpn/.tls

Переместить сгенерированные файлы в соответствующие каталоги:

cp /usr/share/openvpn/easy-rsa/2.0/key/* /etc/openvpn/.key/
cp /usr/share/openvpn/easy-rsa/2.0/ta.key /etc/openvpn/.tls/

Поправить контекст:

chcon -u system_u /etc/openvpn/.key/*
restorecon -v  /etc/openvpn/.key/* 
chcon -u system_u /etc/openvpn/.tls/*
restorecon -v  /etc/openvpn/.tls/*
chcon -u system_u /etc/openvpn/.key/
restorecon -v  /etc/openvpn/.key/
chcon -u system_u /etc/openvpn/.tls/ 
restorecon -v  /etc/openvpn/.tls/

Разрешаем tcp на порту 1723 в SELinux:

semanage port -a -t openvpn_port_t -p tcp 1723

Конфигурационный файл сервера /etc/openvpn/server.conf привести к следующему виду:

Содержимое конфигурационного файла сервера

Теперь можно переходить к настройкам файервола.
В iptables перед строчками, запрещающими все INPUT и FORWARD

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

пишем:

-A INPUT -i tun0 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT

Также добавляем строки «натизации»:

*nat 
:PREROUTING ACCEPT [4:614] 
:POSTROUTING ACCEPT [18:936] 
:OUTPUT ACCEPT [18:936] 
-A POSTROUTING -s 10.10.20.0/24 -o eth0 -j MASQUERADE

«Рестартим» iptables:

service iptables restart

Запускаем openvpn

service openvpn start

Проверяем что сервис открыл порт да и вообще работает:

netstat -nlp | grep 1723
tcp        0      0 192.168.0.2:1723         0.0.0.0:*                   LISTEN 

Если всё нормально, ставим OpenVPN в автозапуск:

chkconfig openvpn on

 

Настройка клиента OpenVPN

Поскольку дома на рабочей машине стоит CentOS, то установку и настройку клиентской части буду вести относительно этой операционки, хотя отличие для других дистрибутивов и операционных систем минимальны.
Создать каталоги, в которых будут располагаться клиентские ключевые файлы:

mkdir /etc/openvpn/.key/
mkdir /etc/openvpn/.tls/

Наисекретнейшим образом стоит перенести на будущую клиентскую машину файлы, ранее сгенерированные на сервере:

ca.crt 
dh2048.pem 
velowup.crt 
velowup.key

в каталог /etc/openvpn/.key/.
А файл ta.key пусть полежит в каталоге etc/openvpn/.tls.
Файл конфигурации клиента OpenVPN следующего вида:

Клиентский конфигурационный файл

# Укажем, что мы являемся клиентом
client
tls-client
# В каком режиме работать? Мостом (tap) или маршрутизация (tun)
dev tun# На каком протоколе работать
proto tcp-client# Адрес и порт сервера (Хоть IP хоть доменное имя)
remote wostok.su 1723

# Бесконечно пробовать разрешить имя хоста OpenVPN-сервера.
resolv-retry infinite

# Не «биндиться» к интерфейсу
nobind

# Стараться сохранять некоторое объекты между перезапусками
persist-key
persist-tun

# Параметры SSL/TLS.
# Смотрите файл конфигурации сервера для более
# подробного описания. Лучше всего использовать
# отдельные пары .crt/.key-файлов
# для каждого клиента. Один ca-файл
# может быть использован для всех клиентов.
ca /etc/openvpn/.key/ca.crt
dh /etc/openvpn/.key/dh2048.pem
cert /etc/openvpn/.key/velowup.crt
key /etc/openvpn/.key/velowup.key

# Если на сервере используется ключ tls-auth,
# то каждый клиент также должен иметь этот ключ.
tls-auth /etc/openvpn/.tls/ta.key 1

# Выбор криптографического шифра (cipher).
# Если опция cipher используется на сервере,
# то вы также должны указать её здесь.
cipher AES-256-CBC
auth SHA512

# Включить сжатие
comp-lzo

# Уровень журналирования
verb 4

# Не записывать повторяющиеся сообщения более чем
mute 20

# От какого пользователя и группы работать клиенту?
user openvpn
group openvpn

# Куда писать журнальные данные о работе клиента?
log-append /var/log/openvpn/openvpn_client.log
status /var/log/openvpn/status_client.log

;route 172.16.1.0 255.255.255.0

Вот, собственно, и все настройки. Дальше запуск клиента и выполнение требуемых операций из далека:

/usr/sbin/openvpn /etc/openvpn/client.conf

gentoo instalation

1. создаем разделы на диске cfdisk

2. выбираем gpt

3. создаем 4е раздела : 1. для системных файлов 21-25Гб, 2. 512Мб для bootable, 3 swap если ОЗУ<4Гб то swap =ОЗУ*2, если больше 4Гб то swap = размеру ОЗУ

4. форматируем все разделы mkfs.ext4 /dev/sda1 , mkfs.ext4 /dev/sda2, mkfs.ext4 /dev/sda4 и swap – mkswap /dev/sda3

5. включаем swap swapon /dev/sda3

6. выставляем дату date 050321132015  месяц, день, часы, минуты, год

монтирование файловых систем которые создали и установка stage3 : stage3 – backup system files

1. mount /dev/sda1 /mnt/gentoo

2. mkdir /mnt/gentoo/{boot,home}

3. mkdir /mnt/gentoo/home

4. mount /dev/sda2 /mnt/gentoo/boot

5. mount /dev/sda4 /mnt/gentoo/home

6. cd /mnt/gentoo

7. скачиваем stage3 links http://www.gentoo.org/main/en/mirrors.xml

8. выбираем http сайт , затем enter, выбираем releases/x86/autobuilds/current-stage3-i686/stage3-i686-2015XXXX.tar.bz2

9. ctrl-C or Q

10. tar xvjpf current-stage3-i686/stage3-i686-2015XXXX.tar.bz2

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

1. mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf

2. any available

3. clear

4. mount -t proc none /mnt/gentoo/proc

5. mount –rbind /sys /mnt/gentoo/sys

6. mount –rbind /dev /mnt/gentoo/dev

7. cp -L /etc/resolv.conf /mnt/gentoo/etc/

8. chroot /mnt/gentoo/ /bin/bash

9. source /etc/profile

10. export PS1=”(chroot) $PS1″

11. mkdir /usr/portage/

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

1. emerge-webrsync

2. emerge –sync

Profiles, timezone, fstab

1. eselect profile list

2. eselect profile set 3

3. nano -w /etc/portage/make.conf

4. less /usr/portage/profiles/use.desc

5. Ctrl-Z

6. ls /usr/share/zoneinfo/

7. ls /usr/share/zoneinfo/Europe

8. cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

9. echo “Europe/Moscow” > /etc/timezone

10. nano -w /etc/fstab

11. inpuuuuuuuuuuuuuuuuuut

Сборка ядра

1. emerge gentoo-sources genkernel

2. exit

3. exit

4. lspci -v

5. Kernel modules: ata_piix, pata_acpi, ata_generic

kernel

6. chroot /mnt/gentoo /bin/bash

7. source /etc/profile

8. export PS1=”(chroot) $PS1″

9. clear

10. ls -l /usr/src/linux

11. cd /usr/src/linux

12. make menuconfig

13. genkernel –no-clean –no-mrproper all

 

 

 

nano -w /etc/hosts

in the line started with 127.0.0.1 before localhost put your machine name

nano -w /etc/conf.d/net

config_eth0=”dhcp”

А для статического ip, прописываем следующие (указав свои данные):

config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
Чтобы сетевые интерфейсы запускались при загрузке, нужно сделать следующие:
cd /etc/init.d

ln -s net.lo net.eth0

rc-update add net.eth0 default

emerge dhcpcd

Самое главное, установим пароль супер пользователя «root», набрав:

passwd

nano -w /etc/locale.gen

locale -a | less

ru_RU.UTF-8 UTF-8
locale-gen

Дальше, установим раскладку клавиатуры.

(chroot) livecd /# nano /etc/conf.d/keymaps

Найдем строчку:

keymap=”us”

и заменим на:

keymap=”-u ru”

Настроим параметр часов. Введем значение clock=”local”

(chroot) livecd /# nano /etc/conf.d/hwclock

Также можно настроить /etc/rc.conf, но я оставлю как есть.

Добавляем в автозагрузку журналирование и крон.

(chroot) livecd /# rc-update add syslog-ng default
(chroot) livecd /# rc-update add vixie-cron default

Установка Gentoo Linux на этом не закончена, теперь самое главное.

Настройка загрузчика GRUB. (Установка Gentoo Linux)

В файле «grub.conf» основном нужно подправить версию ядра. Версию ядра, мы с вами, смотрели командой: «ls /boot/kernel* /boot/initramfs*».

(chroot) livecd /# nano /boot/grub/grub.conf
# Загрузка пункта по умолчанию.
default 0
# сколько ждать до начала загрузки, в секундах.
timeout 10
# симпатичная заставка Grub.
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
#
title Gentoo Linux 3.8.13
# раздел с файлом ядра.
root (hd0,0)
kernel /boot/genkernel-x86-3.8.13-gentoo root=/dev/ran0 real_root=/dev/sda3 udev vga=0x318
#udev — менеджер устройств для новых версий ядра Linux
# vga=0x318 - это разрешение экрана 1024х768
initrd /boot/initramfs-genkernel-x86-3.8.13-gentoo
#
#Если у вас установлен Windows #Например, Windows находится на /dev/sda8 title Windows XP rootnoverify (hd0,7) makeactive chainloader +1

Установим загрузчик GRUB.

(chroot) livecd /# grep -v rootfs /proc/mounts > /etc/mtab
(chroot) livecd /# grub2-install /dev/sda

Генерируем файл grub.cfg

(chroot) livecd /# grub2-mkconfig -o /boot/grub/grub.cfg

Удалим архив, скаченный в начале установки.

(chroot) livecd /# rm /stage3-*.tar.bz2*

Установка Gentoo Linux закончена. Выходим из среды «chroot», перезагружаемся (не забывая вытащить диск).

(chroot) livecd /# exit
(chroot) livecd /# reboot

После перезагрузки, войдем в систему под суперпользователем root. Пароль для пользователя root, мы ввели вовремя установки, командой «passwd»

Login: root
Password: (ваш пароль root)

Теперь, нужно добавить нового пользователя (username — имя нового пользователя).

localhost ~# useradd -m -G users,wheel,audio -s /bin/bash username

Введем пароль для нового пользователя.

localhost ~# passwd username
Password: (введите пароль для username) 
Re-enter password: (повторить пароль)

Изменение имени сервера hostname (CentOS, Red Hat)

Изменение имени хоста – сервера нужно по идеологческим причинам 🙂

Иногда то помогает избежать конфликтов с DNS и избавиться от тормозов системы без видимых нагрузок. Вот команды:

Открываем файл /etc/sysconfig/network и редактируем HOSTNAME=”www.example.com”.

Далее выполняем команду

# hostname www.example.com

Потом открываем фал /etc/hosts и редактируем или добовляем если нет такой строки

127.0.0.1 http://www.example.com localhost localhost.localdomain 

Вот и все, после данных операций сервер нужно перегрузить.