Adding a disk to LVM

Suppose we have already configured LVM, for example, as I described in this article – Setting up and using LVM

Switch to the root user:

sudo su

If there is no hot-swap drive, turn off the server, connect a new disk, turn on the server and look at the name of the new disk (in my case it’s /dev/sdd):

fdisk -l

Let’s see the existing groups and how much space is left:


Let’s see a list of physical volumes:


Let’s start marking a new disk:

fdisk /dev/sdd

Now create a physical volume:

pvcreate /dev/sdd1

Let’s see a list of logical volumes:


We extend it by adding a new partition (where ixnfo is a volume group):

vgextend ixnfo /dev/sdd1

See the list of physical volumes as follows:


Let’s look at the path of the logical volume (in my case /dev/ixnfo/temp) and add a new section:

lvextend /dev/ixnfo/temp /dev/sdd1

Let’s see the size of the mounted logical volume:

df -h

So the size did not change, we’ll fix it with the command:

resize2fs /dev/ixnfo/temp


Setting up and using LVM

LVM (Logical Volume Management) allows you to compile multiple disks and areas from disks into one logical volume and then split again as you like.

PV (Physical Volume) — partition or whole disk
VG (Volume Group) — a single disk assembled from physical volumes
LV (Logical Volume)

Switch to the root user:

sudo -i

Install LVM if it is not already installed (Ubuntu/Debian):

apt-get install lvm2

Let’s look at the information about the disks:

fdisk -l

On the test I have /dev/sda with the system and not marked /dev/sdb.

Let’s make the physical partition all /dev/sdb without partitioning:

pvcreate /dev/sdb

To view the list of physical volumes, use the command:


Create a volume group named ixnfo:

vgcreate ixnfo /dev/sdb

If necessary, delete as follows:

vgremove ixnfo

Example of viewing existing groups and how much space is left:


For the test, create a logical volume “temp” of 100 megabytes:

lvcreate -L100 -n temp ixnfo

To view the list of logical volumes, use the command:


Let’s format it:

mkfs.ext4 -L temp /dev/ixnfo/temp

Create a folder, mount the created volume:

mkdir /mnt/temp
mount /dev/ixnfo/temp /mnt/temp

You can unmount it like this:

umount /mnt/temp/

See also:
Adding a disk to LVM
Managing disk partitions in Ubuntu using fdisk

Installing Zurmo on Linux

On the test I will install Zurmo in Ubuntu Server 16.04 and PHP 7.

1) First, let’s see the requirements
Establish the necessary:

sudo apt-get install apache2 mysql-server mysql-client wget unzip php php-mysql php-cli php-gd php-common php-curl php-dev php-pear php-imap libapache2-mod-php php-mcrypt php-memcache php-memcached memcached php-soap php-mbstring

Open the PHP configuration file in a text editor:

sudo nano /etc/php/7.0/apache2/php.ini

And let’s specify some parameters:

date.timezone = Europe/Kiev
post_max_size = 32M
upload_max_filesize = 32M
zend.assertions = 0

Restart apache2 to apply the changes:

sudo service apache2 restart

2) Connect to mysql, create an empty database and the user:

mysql -u root -p
GRANT ALL PRIVILEGES ON `zurmo`.* TO 'zurmo'@'localhost';

3) Download the latest version from the official site
You can copy the link to the stable version and for example download in linux like this:


4) Unzip the zurmo file, move it to the web server directory and assign the rights:

mv zurmo /var/www/html/zurmo/
sudo chown -R www-data:www-data /var/www/html/zurmo/

5) Now you can open a link in the browser http: //HOST/zurmo/app/index.php, proceed with the installation and follow the displayed instructions.
At installation we will specify the password of user super and we will fill it, it will be necessary further for an input.

6) During the installation, Zurmo required to disable the strict MySQL mode, for this I opened the configuration file:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Added at the very end of the parameter (since it was not):


Reloaded MySQL:

sudo service mysql restart


Access Control Apache2

Access control Apache2 version 2.4 slightly different from 2.2, for example, to allow access to all, in version 2.4 you need to specify:

Require all granted

Allow access to the specified IP addresses:

Require local
Require ip

Allow all but the specified IP:

Require all granted
Require not ip

Allow the specified host:

Require host

Prohibit all:

Require all denied

And in the version of Apache2 2.2, permit everyone access like this:

Order allow,deny
Allow from all

Prohibit all:

Order deny,allow
Deny from all

Allow access by specified IP:

Order allow,deny
Allow from

Allow the specified host:

Order Deny,Allow
Deny from all
Allow from

After the changes in the Apache2 configuration, a reboot is required (if the changes were in the .htaccess file, then the reboot is not required):

sudo service apache2 restart

See also:
Using .htaccess

Change connect_timeout in MySQL

connect_timeout – the number of seconds that the mysql server waits for the connection package before terminating the connection.

Connect to MySQL and see the current value:

mysql -u USER -p
show variables like "connect_timeout";

The value of connect_timeout can be specified in the file /etc/mysql/my.cnf, for example:


In real time, you can change by executing the SQL query (after restarting MySQL it will be reset to the standard or specified in the configuration file):

SET GLOBAL connect_timeout=10;

The standard value is 10, the minimum value is 2, the maximum is 31536000.

How to install and enable mbstring

To install mbstring in Ubuntu/Debian, run the following command:

sudo apt-get install php-mbstring

In CentOS like this:

sudo yum install php-mbstring

You can activate/deactivate the module like this:

sudo phpenmod mbstring
sudo phpdismod mbstring

Restart Apache2 to apply the changes:

sudo service apache2 restart

Let’s see if mbstring is activated:

php -i | grep -i mbstring

How to get into BIOS on Lenovo laptops

Today it was necessary to go into the BIOS on the Lenovo IdeaPad 110-15IBR laptop (80T7), but when you press all the keys that are usually used to enter the BIOS, the laptop did not respond and the system continued to boot.

As it turned out, in the BIOS of this Lenovo laptop model, the HotKey Mode function is activated as standard and the functional keys are activated instead of the F1-F12 keys.

Therefore, to enter the BIOS, it is necessary to press two Fn and F2 keys simultaneously, if HotKey Mode is disabled, then simply F2.

See alsoFunction keys Fn on the laptop work the other way around

Install GPON card in Huawei OLT

On the test I’ll take the H805GPFD board with 16 GPON ports and install it in OLT Huawei SmartAX MA5683T without shutting it down.
After inserting on the board, the RUN / ALM indicator flashed red and literally a minute later green.

Optionally, before inserting the board, you can turn on alarm output and then turn off:

alarm output all
undo alarm output all

When the board is already installed, in the configuration mode, confirm it:

board confirm 0/3

And enable ONT detection on ports:

interface gpon 0/3
port 0 ont-auto-find enable
port 1 ont-auto-find enable
port 2 ont-auto-find enable
port 3 ont-auto-find enable
port 4 ont-auto-find enable
port 5 ont-auto-find enable
port 6 ont-auto-find enable
port 7 ont-auto-find enable
port 8 ont-auto-find enable
port 9 ont-auto-find enable
port 10 ont-auto-find enable
port 11 ont-auto-find enable
port 12 ont-auto-find enable
port 13 ont-auto-find enable
port 14 ont-auto-find enable
port 15 ont-auto-find enable

Let’s look at the information about the board:

display board 0/3
display cpu 0/3

Exit the configuration mode and save the current configuration:


If you are using the U2000, then by clicking on the OLT, select “Synchronize NE Configuration Data”.
In the old version of U2000 R009 noticed that in the main window a question mark is displayed instead of the port of the board, in this case it is necessary to update U2000 or for example add ONT through GPON – GPON Management – GPON UNI Port tab – select port – ONU Info tab – Auto Discover ONUs.

See my video on installing H805GPFD in Huawei SmartAX MA5683T:

Troubleshooting /usr/sbin/ejabberdctl: line 428: 14615 Segmentation fault

I noticed once after installing EJabberd in Ubuntu Server 16.04 and adding the user from the root command:

ejabberdctl register USER localhost PASSWORD

The following error:

/usr/sbin/ejabberdctl: line 428: 14615 Segmentation fault $EXEC_CMD “$CMD”

The log file /var/log/syslog reported:

Sep 11 11:17:00 mail kernel: [4647543.535271] audit: type=1400 audit(1505117820.598:43): apparmor=”DENIED” operation=”file_mmap” profile=”/usr/sbin/ejabberdctl//su” name=”/bin/su” pid=14439 comm=”su” requested_mask=”m” denied_mask=”m” fsuid=0 ouid=0

To solve the error, I opened the apparmor configuration file:

nano /etc/apparmor.d/usr.sbin.ejabberdctl

Found the string:

/bin/su                                 r,

And changed it by adding m:

/bin/su                                 rm,

Restarted the apparmor:

sudo service apparmor restart

Done, the error no longer appears.