LINUX.ORG.RU

История изменений

Исправление Vsevolod-linuxoid, (текущая версия) :

Так… ну давай небольшую демонстрацию того, что такое разделы в Linux, ФС на них и как монтирование и прочее работает…

Для начала, создадим пару тестовых LV для демонстрации:

root@hp15:~# lvcreate -L128m vg0 -n test0
  Logical volume "test0" created.
root@hp15:~# lvcreate -L256m vg0 -n test1
  Logical volume "test1" created.
root@hp15:~# 

Если посмотреть вывод lsblk, он покажет нам их:

root@hp15:/# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 465,8G  0 disk 
├─sda1                      8:1    0     2G  0 part 
├─sda2                      8:2    0     2G  0 part /boot
├─sda3                      8:3    0     2G  0 part 
└─sda4                      8:4    0 459,8G  0 part 
  ├─vg0-lv_al9swap        254:0    0     2G  0 lvm  
  ├─vg0-lv_al9root        254:1    0    24G  0 lvm  
  ├─vg0-lv_al9home        254:2    0     8G  0 lvm  
  ├─vg0-lv_al9virt0       254:3    0    64G  0 lvm  
  ├─vg0-lv_deb11swap      254:4    0     2G  0 lvm  [SWAP]
  ├─vg0-lv_deb11root      254:5    0   160G  0 lvm  /
  ├─vg0-lv_ubuntu2004swap 254:6    0     2G  0 lvm  
  ├─vg0-lv_ubuntu2004root 254:7    0    32G  0 lvm  
  ├─vg0-test0             254:8    0   128M  0 lvm  
  └─vg0-test1             254:9    0   256M  0 lvm  
sr0                        11:0    1  1024M  0 rom  

То есть у меня на разделе /dev/sda4 есть VG с именем vg0, что содержит, помимо всего прочего, эти LV. Как нетрудно заметить, они сейчас никуда не примонтированы.

Попробуем их примонтировать:

root@hp15:~# mount /dev/mapper/vg0-test0 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-test0, missing codepage or helper program, or other error.
root@hp15:~# mount /dev/mapper/vg0-test1 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-test1, missing codepage or helper program, or other error.
root@hp15:~# 

Это не сработало — само собой, ведь у нас нет сейчас ФС на них. Создадим ФС на обоих LV:

root@hp15:~# mkfs.ext4 /dev/mapper/vg0-test0
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done                            
Creating filesystem with 131072 1k blocks and 32768 inodes
Filesystem UUID: 26e7f2ab-14d4-4b6f-9cfb-9ed67f44cf4e
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

root@hp15:~# mkfs.xfs /dev/mapper/vg0-test1
meta-data=/dev/mapper/vg0-test1  isize=512    agcount=4, agsize=16384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0
data     =                       bsize=4096   blocks=65536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
root@hp15:~# 

Теперь попробуем примонтировать оба — но сменим точку монтирования, при этом создадим новую:

root@hp15:~# mkdir /tmp/test/
root@hp15:~# mkdir /tmp/test/0
root@hp15:~# mkdir /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test0 /tmp/test/0
root@hp15:~# mount /dev/mapper/vg0-test1 /tmp/test/1
root@hp15:/# df -hT
Файловая система             Тип      Размер Использовано  Дост Использовано% Cмонтировано в
udev                         devtmpfs   7,8G            0  7,8G            0% /dev
tmpfs                        tmpfs      1,6G         1,5M  1,6G            1% /run
/dev/mapper/vg0-lv_deb11root ext4       157G         120G   31G           80% /
tmpfs                        tmpfs      7,8G          13M  7,8G            1% /dev/shm
tmpfs                        tmpfs      5,0M         4,0K  5,0M            1% /run/lock
/dev/sda2                    ext4       2,0G         117M  1,7G            7% /boot
tmpfs                        tmpfs      1,6G         104K  1,6G            1% /run/user/1000
/dev/mapper/vg0-test0        ext4       119M          14K  110M            1% /tmp/test/0
/dev/mapper/vg0-test1        xfs        251M          15M  236M            6% /tmp/test/1

Что мы только что сделали? Мы примонтировали LV test0 в директорию /tmp/test/0, а test1 в директорию /tmp/test/1

Теперь давай создадим на каждой по файлу и директории:

root@hp15:~# touch /tmp/test/0/file0
root@hp15:~# touch /tmp/test/1/file1
root@hp15:~# mkdir /tmp/test/0/dir0
root@hp15:~# mkdir /tmp/test/1/dir1
root@hp15:~# ls -lR /tmp/test
/tmp/test:
итого 1
drwxr-xr-x 4 root root 1024 сен  8 13:23 0
drwxr-xr-x 3 root root   31 сен  8 13:23 1

/tmp/test/0:
итого 13
drwxr-xr-x 2 root root  1024 сен  8 13:23 dir0
-rw-r--r-- 1 root root     0 сен  8 13:23 file0
drwx------ 2 root root 12288 сен  8 13:12 lost+found

/tmp/test/0/dir0:
итого 0

/tmp/test/0/lost+found:
итого 0

/tmp/test/1:
итого 0
drwxr-xr-x 2 root root 6 сен  8 13:23 dir1
-rw-r--r-- 1 root root 0 сен  8 13:23 file1

/tmp/test/1/dir1:
итого 0
root@hp15:~# 

Как мы видим, у нас есть файл file0 и директория dir0 в /tmp/test/0/, и файл file1 и директория dir1 в /tmp/test/1/

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

root@hp15:~# umount /tmp/test/0
root@hp15:~# umount /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test0 /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test1 /tmp/test/0
root@hp15:~# df -hT | grep test
/dev/mapper/vg0-test0        ext4       119M          15K  110M            1% /tmp/test/1
/dev/mapper/vg0-test1        xfs        251M          15M  236M            6% /tmp/test/0
root@hp15:~# ls -lR /tmp/test
/tmp/test:
итого 1
drwxr-xr-x 3 root root   31 сен  8 13:23 0
drwxr-xr-x 4 root root 1024 сен  8 13:23 1

/tmp/test/0:
итого 0
drwxr-xr-x 2 root root 6 сен  8 13:23 dir1
-rw-r--r-- 1 root root 0 сен  8 13:23 file1

/tmp/test/0/dir1:
итого 0

/tmp/test/1:
итого 13
drwxr-xr-x 2 root root  1024 сен  8 13:23 dir0
-rw-r--r-- 1 root root     0 сен  8 13:23 file0
drwx------ 2 root root 12288 сен  8 13:12 lost+found

/tmp/test/1/dir0:
итого 0

/tmp/test/1/lost+found:
итого 0

Как видно, теперь файл file0 и директория dir0 в /tmp/test/1/, а файл file1 и директория dir1 в /tmp/test/0/

Ну а теперь давай возьмем и примонтируем один из наших LV в директорию на другом, да, это вполне возможно:

root@hp15:~# umount /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test0 /tmp/test/0/dir1/
root@hp15:~# df -hT | grep test
/dev/mapper/vg0-test1        xfs        251M          15M  236M            6% /tmp/test/0
/dev/mapper/vg0-test0        ext4       119M          15K  110M            1% /tmp/test/0/dir1
root@hp15:~# ls -lR /tmp/test
/tmp/test:
итого 4
drwxr-xr-x 3 root root   31 сен  8 13:23 0
drwxr-xr-x 2 root root 4096 сен  8 13:16 1

/tmp/test/0:
итого 1
drwxr-xr-x 4 root root 1024 сен  8 13:23 dir1
-rw-r--r-- 1 root root    0 сен  8 13:23 file1

/tmp/test/0/dir1:
итого 13
drwxr-xr-x 2 root root  1024 сен  8 13:23 dir0
-rw-r--r-- 1 root root     0 сен  8 13:23 file0
drwx------ 2 root root 12288 сен  8 13:12 lost+found

/tmp/test/0/dir1/dir0:
итого 0

/tmp/test/0/dir1/lost+found:
итого 0

/tmp/test/1:
итого 0

И вот теперь файл file0 и директория dir0 находятся внутри /tmp/test/0/dir1

Ну что, стало хотя бы немного понятнее?

Исходная версия Vsevolod-linuxoid, :

Так… ну давай небольшую демонстрацию того, что такое разделы в Linux, ФС на них и как монтирование и прочее работает…

Для начала, создадим пару тестовых LV для демонстрации:

root@hp15:~# lvcreate -L128m vg0 -n test0
  Logical volume "test0" created.
root@hp15:~# lvcreate -L256m vg0 -n test1
  Logical volume "test1" created.
root@hp15:~# 

Если посмотреть вывод lsblk, он покажет нам их:

root@hp15:/# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 465,8G  0 disk 
├─sda1                      8:1    0     2G  0 part 
├─sda2                      8:2    0     2G  0 part /boot
├─sda3                      8:3    0     2G  0 part 
└─sda4                      8:4    0 459,8G  0 part 
  ├─vg0-lv_al9swap        254:0    0     2G  0 lvm  
  ├─vg0-lv_al9root        254:1    0    24G  0 lvm  
  ├─vg0-lv_al9home        254:2    0     8G  0 lvm  
  ├─vg0-lv_al9virt0       254:3    0    64G  0 lvm  
  ├─vg0-lv_deb11swap      254:4    0     2G  0 lvm  [SWAP]
  ├─vg0-lv_deb11root      254:5    0   160G  0 lvm  /
  ├─vg0-lv_ubuntu2004swap 254:6    0     2G  0 lvm  
  ├─vg0-lv_ubuntu2004root 254:7    0    32G  0 lvm  
  ├─vg0-test0             254:8    0   128M  0 lvm  
  └─vg0-test1             254:9    0   256M  0 lvm  
sr0                        11:0    1  1024M  0 rom  

То есть у меня на разделе /dev/sda4 есть VG с именем vg0, что содержит, помимо всего прочего, эти LV. Как нетрудно заметить, они сейчас никуда не примонтированы.

Попробуем их примонтировать:

root@hp15:~# mount /dev/mapper/vg0-test0 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-test0, missing codepage or helper program, or other error.
root@hp15:~# mount /dev/mapper/vg0-test1 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-test1, missing codepage or helper program, or other error.
root@hp15:~# 

Это не сработало — само собой, ведь у нас нет сейчас ФС на них. Создадим ФС на обоих LV:

root@hp15:~# mkfs.ext4 /dev/mapper/vg0-test0
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done                            
Creating filesystem with 131072 1k blocks and 32768 inodes
Filesystem UUID: 26e7f2ab-14d4-4b6f-9cfb-9ed67f44cf4e
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

root@hp15:~# mkfs.xfs /dev/mapper/vg0-test1
meta-data=/dev/mapper/vg0-test1  isize=512    agcount=4, agsize=16384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0
data     =                       bsize=4096   blocks=65536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
root@hp15:~# 

Теперь попробуем примонтировать оба — но сменим точку монтирования, при этом создадим новую:

root@hp15:~# mkdir /tmp/test/
root@hp15:~# mkdir /tmp/test/0
root@hp15:~# mkdir /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test0 /tmp/test/0
root@hp15:~# mount /dev/mapper/vg0-test1 /tmp/test/1
root@hp15:/# df -hT
Файловая система             Тип      Размер Использовано  Дост Использовано% Cмонтировано в
udev                         devtmpfs   7,8G            0  7,8G            0% /dev
tmpfs                        tmpfs      1,6G         1,5M  1,6G            1% /run
/dev/mapper/vg0-lv_deb11root ext4       157G         120G   31G           80% /
tmpfs                        tmpfs      7,8G          13M  7,8G            1% /dev/shm
tmpfs                        tmpfs      5,0M         4,0K  5,0M            1% /run/lock
/dev/sda2                    ext4       2,0G         117M  1,7G            7% /boot
tmpfs                        tmpfs      1,6G         104K  1,6G            1% /run/user/1000
/dev/mapper/vg0-test0        ext4       119M          14K  110M            1% /tmp/test/0
/dev/mapper/vg0-test1        xfs        251M          15M  236M            6% /tmp/test/1

Что мы только что сделали? Мы примонтировали LV test0 в директорию /tmp/test/0, а test1 в директорию /tmp/test/1

Теперь давай создадим на каждой по файлу и директории:

root@hp15:~# touch /tmp/test/0/file0
root@hp15:~# touch /tmp/test/1/file1
root@hp15:~# mkdir /tmp/test/0/dir0
root@hp15:~# mkdir /tmp/test/1/dir1
root@hp15:~# ls -lR /tmp/test
/tmp/test:
итого 1
drwxr-xr-x 4 root root 1024 сен  8 13:23 0
drwxr-xr-x 3 root root   31 сен  8 13:23 1

/tmp/test/0:
итого 13
drwxr-xr-x 2 root root  1024 сен  8 13:23 dir0
-rw-r--r-- 1 root root     0 сен  8 13:23 file0
drwx------ 2 root root 12288 сен  8 13:12 lost+found

/tmp/test/0/dir0:
итого 0

/tmp/test/0/lost+found:
итого 0

/tmp/test/1:
итого 0
drwxr-xr-x 2 root root 6 сен  8 13:23 dir1
-rw-r--r-- 1 root root 0 сен  8 13:23 file1

/tmp/test/1/dir1:
итого 0
root@hp15:~# 

Как мы видим, у нас есть файл file0 и директория dir0 в /tmp/test/0/, и файл file1 и директория dir1 в /tmp/test/1/

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

root@hp15:~# umount /tmp/test/0
root@hp15:~# umount /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test0 /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test1 /tmp/test/0
root@hp15:~# df -hT | grep test
/dev/mapper/vg0-test0        ext4       119M          15K  110M            1% /tmp/test/1
/dev/mapper/vg0-test1        xfs        251M          15M  236M            6% /tmp/test/0
root@hp15:~# ls -lR /tmp/test
/tmp/test:
итого 1
drwxr-xr-x 3 root root   31 сен  8 13:23 0
drwxr-xr-x 4 root root 1024 сен  8 13:23 1

/tmp/test/0:
итого 0
drwxr-xr-x 2 root root 6 сен  8 13:23 dir1
-rw-r--r-- 1 root root 0 сен  8 13:23 file1

/tmp/test/0/dir1:
итого 0

/tmp/test/1:
итого 13
drwxr-xr-x 2 root root  1024 сен  8 13:23 dir0
-rw-r--r-- 1 root root     0 сен  8 13:23 file0
drwx------ 2 root root 12288 сен  8 13:12 lost+found

/tmp/test/1/dir0:
итого 0

/tmp/test/1/lost+found:
итого 0

Как видно, теперь файл file0 и директория dir0 в /tmp/test/1/, а файл file1 и директория dir1 в /tmp/test/0/

Ну а теперь давай возьмем и примонтируем один из наших LV в директорию на другом, да, это вполне возможно:

root@hp15:~# umount /tmp/test/1
root@hp15:~# mount /dev/mapper/vg0-test0 /tmp/test/0/dir1/
root@hp15:~# df -hT | grep test
/dev/mapper/vg0-test1        xfs        251M          15M  236M            6% /tmp/test/0
/dev/mapper/vg0-test0        ext4       119M          15K  110M            1% /tmp/test/0/dir1
root@hp15:~# ls -lR /tmp/test
/tmp/test:
итого 4
drwxr-xr-x 3 root root   31 сен  8 13:23 0
drwxr-xr-x 2 root root 4096 сен  8 13:16 1

/tmp/test/0:
итого 1
drwxr-xr-x 4 root root 1024 сен  8 13:23 dir1
-rw-r--r-- 1 root root    0 сен  8 13:23 file1

/tmp/test/0/dir1:
итого 13
drwxr-xr-x 2 root root  1024 сен  8 13:23 dir0
-rw-r--r-- 1 root root     0 сен  8 13:23 file0
drwx------ 2 root root 12288 сен  8 13:12 lost+found

/tmp/test/0/dir1/dir0:
итого 0

/tmp/test/0/dir1/lost+found:
итого 0

/tmp/test/1:
итого 0

И вот теперь файл file0 и директория dir0 находятся внутри /tmp/test/0/dir1

Ну что, стало хотя бы немного понятнее?