Root file system is mounted read-only on boot on Gentoo Linux

Root file system is mounted read-only on boot on Gentoo Linux Техника

Разделы дисков в Linux подключаются к системе совсем не так, как в Windows. Здесь есть корневая файловая система, куда подключаются все другие разделы и устройства, которые вы будете использовать. Системные разделы монтируются автоматически при старте системы. Но если вам нужно подключить дополнительные разделы, в некоторых случаях, может понадобиться это делать вручную.

В этой статье мы рассмотрим как выполняется монтирование диска в Linux, поговорим о том, как правильно использовать утилиту mount, umount и посмотреть какие разделы куда примонтированы.

Содержание
  1. Что такое монтирование?
  2. Монтирование разделов с помощью mount
  3. Размонтирование устройств в Linux
  4. Выводы
  5. Что делать с «vfs unable to mount root fs»
  6. 1. Загрузка из более старого ядра
  7. 2. Неверное имя корневого раздела Grub
  8. Выводы
  9. Fs-utils
  10. Из листинга выше видно, что к операционной системе подключено:
  11. Монтирование разделов жесткого диска
  12. Так же этот параметр может принимать значения:
  13. Чтобы вручную задать параметры доступа к примонтированному разделу следует указать параметр:
  14. Монтирование дисков CD/DVD-
  15. Монтирование образов диска
  16. Монтирование сетевых дисков
  17. Графические инструменты монтирования в Linux
  18. Оглавление
  19. Основы монтирования и использования команды mount
  20. Что такое монтирование
  21. Как соотносится операция монтирования с разбивкой на разделы и форматированием
  22. Что нужно для монтирования
  23. Указание типа файловой системы
  24. Как увидеть точки монтирования
  25. Как смонтировать диск
  26. Как смонтировать диск только для чтения
  27. Как размонтировать диск
  28. Операция привязки bind
  29. Перемещение точки монтирования
  30. Как перемонтировать диск
  31. Просмотр информации о блочных устройствах

Что такое монтирование?

Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.

Фактически смонтированный раздел становится частью корневой файловой системы и система старается сделать работу со всеми разделами, независимо от их файловых систем, прозрачной. Это значит, что если вы примонтируете участок оперативной памяти или удаленную сетевую папку, то сможете работать с ней в файловом менеджере точно так же, как и с локальным диском.

Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.

Обычно, монтированием занимаются специальные сервисы оболочки, но не всегда они доступны. А иногда нужно сделать все вручную, чтобы задать дополнительные опции монтирования или другие параметры. Для монтирования в Linux используется команда mount. Рассмотрим ее параметры:

$ mount 

Или расширенный вариант:

Опции задают различные дополнительные особенности работы утилиты. Опция -t необязательна, но она позволяет задать файловую систему, которая будет использована и иногда это очень полезно. С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и т д. Последних два параметра — это файл устройства, например, /dev/sda1 и папка назначения, например, /mnt.

Это не все, но основные опции, которые вам понадобятся во время работы с утилитой. Также, возможно, вы захотите знать список опций монтирования, которые могут быть полезными. Они все перечислены в статье автоматическое монтирование в fstab и писать их еще и здесь нет смысла. А теперь перейдем к примерам и рассмотрим как монтировать диск в linux.

Монтирование разделов с помощью mount

Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:

sudo mount /dev/sdb6 /mnt/

Root file system is mounted read-only on boot on Gentoo Linux

sudo mount -v /dev/sdb6 /mnt/

Root file system is mounted read-only on boot on Gentoo Linux

Если нужно, вы можете указать файловую систему с помощью опции -t:

sudo mount -v -t ext4 /dev/sdb6 /mnt

Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:

sudo mount -t ext4 -r /dev/sdb6 /mnt
$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt

Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:

sudo mount -t ext4 -o noexec /dev/sdb6 /mnt

Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT.

Вы можете использовать не только имена устройств чтобы выполнить монтирование диска в linux. Для этого можно применять UUID или метки, например, монтирование с помощью UUID:

sudo mount --uuid="b386d309-05c1-42c8-8364-8d37270b69e0" /mnt

Root file system is mounted read-only on boot on Gentoo Linux

Посмотреть uuid для ваших разделов можно с помощью команды:

Root file system is mounted read-only on boot on Gentoo Linux

Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:

sudo mount --label="home" /mnt/

Root file system is mounted read-only on boot on Gentoo Linux

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

sudo mount --bind /mnt/ /media/

Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:

sudo mount ~/file.iso /mnt

Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:

Root file system is mounted read-only on boot on Gentoo Linux

Размонтирование устройств в Linux

Когда вы хотите завершить работу с устройством, особенно с флешкой, его нужно размонтировать. Для этого существует утилита umount. В качестве параметров она принимает точку монтирования или устройство. Например:

sudo umount /mnt

Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.

Root file system is mounted read-only on boot on Gentoo Linux

Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:

 lsof -w /mnt
$ lsof -w /dev/sdb6

Root file system is mounted read-only on boot on Gentoo Linux

Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:

sudo umount -l /mnt

Root file system is mounted read-only on boot on Gentoo Linux

Выводы

В этой статье мы рассмотрели как выполняется монтирование жестких дисков linux, а также разделов и даже образов. Вы знаете как правильно использовать опции mount и umount. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

В сегодняшней статье мы разберём причины, по которым может возникать данная ошибка, а также способы, с помощью которых вы сможете попытаться её исправить.

Все ситуации, в которых может появиться сообщение «error: vfs unable to mount root fs» можно разделить на два вида:

  • Загрузка с жёсткого диска — вы загружаете свою основную операционную систему после внесения изменений в таблицу разделов, обновления или других действий, которые могли задеть диски;
  • Вы загружаете LiveCD-систему с оптического диска или флешки.

Root file system is mounted read-only on boot on Gentoo Linux

Второй вариант сразу же отбросим. Здесь исправлять нечего. Ошибка означает, что либо образ был битый, либо он был неверно записан на диск. А вот первый случай интереснее, рассмотрим основные причины, которые могут его вызывать:

  • Корневой раздел был переименован и теперь называется по другому;
  • Повреждена initramfs;
  • Ядро не поддерживает файловую систему корневого раздела;
  • Ошибка в конфигурации загрузчика, например, из-за недостаточного количества свободного места в папке /boot;
  • Файловая система корневого раздела повреждена.

Теперь давайте рассмотрим возможные пути решения проблемы.

Что делать с «vfs unable to mount root fs»

1. Загрузка из более старого ядра

После того, как система выдаст эту ошибку, случится Kernel Panic и компьютер перезагрузится. Вы снова окажетесь в меню загрузчика Grub. Здесь, первым делом, надо попытаться загрузиться с помощью более старого ядра. Для этого выберите пункт Дополнительные параметры и выберите одно из более старых ядер.

Если система в этом случае загрузится, то можно сделать вывод, что не работает только новое ядро. Если вы собирали его сами, то, возможно, вы не включили в него все необходимые для работы файловые системы. Если это ядро из репозиториев, и система загрузилась с более старым ядром, то можно предположить, что у вас повреждена initramfs для нового ядра. Это тоже могло произойти из-за недостатка памяти при обновлении системы. Чтобы всё исправить, вам достаточно освободить место в каталоге /boot/ и создать новую initramfs. Проверьте и освободите место в папке /boot, если его там мало:

Root file system is mounted read-only on boot on Gentoo Linux

У меня занято только 30%, если будет 100% — надо освобождать. Для создания initramfs сначала узнаем текущую версию ядра:

Root file system is mounted read-only on boot on Gentoo Linux

Затем вставляем полученную версию в такую команду:

sudo update-initramfs -u -k версия

sudo update-initramfs -u -k 4.15.0-36-generic

Root file system is mounted read-only on boot on Gentoo Linux

После завершения этой операции надо обновить конфигурацию Grub:

Если вы думаете, что проблема именно в свободном пространстве и initramfs, но загрузится с помощью более старого ядра не можете, то попробуйте другой LiveCD-дистрибутив и попытайтесь всё исправить в chroot-окружении.

2. Неверное имя корневого раздела Grub

Сейчас, в большинстве дистрибутивов, в конфигурационном файле Grub имя корневого раздела передается ядру в формате UUID. И с этим обстоятельством есть одна проблема. Если вы каким-либо образом измените корневой раздел, например, измените его размер, то UUID изменится. И если вы перезагрузитесь, не обновив конфигурацию Grub, то система больше не загрузится, потому что ядро попросту не сможет найти нужного раздела.

Но попытаться решить проблему можно. Если вы точно знаете, на каком разделе у вас находится корень, то можно прямо в меню Grub исправить конфигурацию. Для этого в меню выберете стрелками вверх и вниз нужный пункт, а затем нажмите кнопку E. Откроется редактор конфигурации. Вам нужно найти строчку, похожую на эту:

linux /boot/vmlinuz-4.15.0-36-generic root=UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c ro quiet splash $vt_handoff

Root file system is mounted read-only on boot on Gentoo Linux

В ней надо заменить UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c на обычное имя вашего корневого раздела, например, /dev/sda2. Для начала загрузки нажмите F10. Если система загрузится, значит проблема была именно в этом. В дальнейшем, можно просто обновить конфигурацию Grub:

Или даже попросить Grub больше не использовать UUID для обозначения корневого раздела:

sudo vi /etc/default/grub

Root file system is mounted read-only on boot on Gentoo Linux

Если ошибка исчезла, но система всё ещё не загружается, обратите внимание, что systemd всё ещё использует файл /etc/fstab для монтирования файловых систем. И если корневая файловая система (и не корневая тоже) там указана неверно, система не загрузится. Для исправления этой проблемы можно использовать режим восстановления Ubuntu. Здесь тоже надо заменить UUID на обычную запись или же на правильный UUID. Такая проблема очень часто становится причиной медленной загрузки Linux.

В этом же режиме можно проверить корневой раздел на ошибки, но для проверки диска лучше использовать LiveCD.

Выводы

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Fs-utils

Looks like fs-utils might be the generic solution here:

The aim of this project is to have a set of utilities to access and modify a file system image without having to mount it. To use fs-utils you do not have to be root, you just need read/write access to the image or device. The advantage of fs-utils over similar projects such as mtools is supporting the usage of familiar Unix tools ( ls , cp , mv , etc.) for a large number of file systems.

Linux is supported and there are binary packages available (make sure you also get the rump kernel components on which it is based). Since we’re not root we need to install them in our home directory (~/usr for example):

$ mkdir ~/usr ; cd ~/usr
$ dpkg-deb --fsys-tarfile ../netbsd-rump_20140405_i386.deb | tar -xvf -
$ dpkg-deb --fsys-tarfile ../netbsd-fs-utils_1.10_i386.deb | tar -xvf -

Add this to ~/.bashrc:

export PATH="$HOME/usr/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/usr/lib"

Then you can:

$ fsu_ls -t ext2fs image.ext2 -l
total 2
-rw-r--r-- 1 0 0 12 Apr 9 12:45 a_file.txt
$ fsu_cat -t ext2fs image.ext2 a_file.txt
just a demo

The filesystem names are a little different than usual: msdos instead of vfat, ext2fs instead of ext2, cd9660 instead of iso9660 etc.

Here are the contents of my fstab:

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc defaults 0 0
# / was on /dev/mapper/minicc-root during installation
UUID=1a69f02a-a049-4411-8c57-ff4ebd8bb933 / ext3 relatime,errors=remount-ro 0 1
# /boot was on /dev/sda5 during installation
UUID=038498fe-1267-44c4-8788-e1354d71faf5 /boot ext2 relatime 0 2
# swap was on /dev/mapper/minicc-swap_1 during installation
UUID=0bb583aa-84a8-43ef-98c4-c6cb25d20715 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/scd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
/dev/sdb1 /mnt/sdcard auto auto,user,rw,exec 0 0
$ mount /dev/sdb1 /mnt/sdcard

/bin/mount is owned by root and is in the root group and has 4755 permissions.
/bin/umount is owned by root and is in the root group and has 4755 permissions.
/mnt/sdcard is owned by me and is in one of my groups and has 0755 permissions.

Дополнительно:  Вылет в основной сюжетной линии Ведьмак 3: Кровь и вино :: The Witcher 3: Wild Hunt General Discussions

My mount command works fine if I use sudo, but I need to be able to do this without sudo (need to be able to do it from a PHP script using shell_exec). Any suggestions?

I am using Gentoo Linux and for a while now, the root file system is mounted read-only on booting. For obvious reasons, this is quite annoying as most services do not start up correctly (I do not use a separate file system for /var). After the system is up, I have to log in, remount the root file system read-write, fix /etc/mtab, mount all other file systems in from /etc/fstab and then start up all the missing daemons. I know that there are ways to make a system run properly with a read-only file system, but I would rather restore the old behaviour of a writable root file system.

The strange thing is that after running mount / -o remount,rw, the file system is mounted in writable mode without any errors. I suspected some problem with fsck, but now I have disabled automatic file system checks on the partition (tune2fs -c0 -i0).

When I run dmesg, only these lines mention the partition at all, although I am not sure if not something gets lost because /var/log is not writable:

EXT3-fs (sda5): mounted filesystem with writeback data mode</code>
EXT3-fs (sda5): using internal journal

The line in /etc/fstab looks like this:

/dev/sda5 / ext3 noatime 0 1

I am using the kernel 2.6.34-gentoo-r6 (the same problem existed with a previous 2.6.31 kernel). I have created it using genkernel 3.4.10.906. My grub configuration looks like this:

title=Gentoo Linux (2.6.34-gentoo-r6)
root (hd0,0)
kernel /kernel-genkernel-x86_64-2.6.34-gentoo-r6 root=/dev/ram0 real_root=/dev/sda5 vga=792 CONSOLE=/dev/tty1 resume=/dev/sda6
initrd /initramfs-genkernel-x86_64-2.6.34-gentoo-r6

Apart from that, I run baselayout 2.0.0 with openrc 0.6.3, if that is any important. sysvinit 2.87-r3 is also installed, I don’t know if it’s actually used.

Here is the output of dumpe2fs:

Filesystem volume name: hd-root
Last mounted on: <not available>
Filesystem UUID: 387432ca-2464-4c61-ba15-11c4af1c0418
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1528912
Block count: 6104692
Reserved block count: 0
Free blocks: 413799
Free inodes: 674036
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8176
Inode blocks per group: 511
Filesystem created: Tue Dec 9 14:48:56 2008
Last mount time: Mon Sep 27 00:00:15 2010
Last write time: Sun Sep 26 23:55:12 2010
Mount count: 39
Maximum mount count: -1
Last checked: Sun Sep 26 23:51:51 2010
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Journal inode: 8
First orphan inode: 698281
Default directory hash: tea
Directory Hash Seed: 4229715b-4ad1-4285-940b-9960db1cb4e1
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x003d9991
Journal start: 1

I have no idea what could cause this problem. I cannot find any error messages, and searching the internet, I only find manuals how to deliberately mount the root filesystem read-

Ciro Santilli OurBigBook.com's user avatar

asked Sep 5, 2015 at 20:13

UTF-8's user avatar

You can use udiskctl:

$ udisksctl loop-setup --file your_file.iso
Mapped file your_file.iso as /dev/loop6.
$ udisksctl mount -b /dev/loop6
Mounted /dev/loop6 at /media/user/your_file.

when you’re done, unmount is using:

$ udisksctl unmount -b /dev/loop6
Unmounted /dev/loop6.

finally, delete it by:

$ udisksctl loop-delete -b /dev/loop6

answered Jul 9, 2019 at 9:38

Mohammad Kholghi's user avatar

You can have it in /etc/fstab. My home directory is encrypted, yet:

$ dd if=/dev/zero of=ext4_file bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1,0 MB) copied, 0,0341311 s, 30,7 MB/s
$ /sbin/mkfs.ext4 -F ext4_file
mke2fs 1.42.12 (29-Aug-2014)
Filesystem too small for a journal
Discarding device blocks: done
Creating filesystem with 1024 1k blocks and 128 inodes
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$ grep ext4_directory /etc/fstab
/home/alessandro/ext4_file /home/alessandro/ext4_directory ext4 noauto,user 0 0
$ mount ext4_directory
$ mount | grep ext4_directory
/home/alessandro/ext4_file on /home/alessandro/ext4_directory type ext4 (rw,nosuid,nodev,noexec,relatime,user=alessandro)

Pablo Bianchi's user avatar

answered Sep 5, 2015 at 21:41

Alessandro's user avatar

3 silver badges9 bronze badges

guestmount libguestfs trickery

sudo apt-get install libguestfs-tools
# Workarounds for Ubuntu 18.04 bugs.
# https://serverfault.com/questions/246835/convert-directory-to-qemu-kvm-virtual-disk-image/916697#916697
sudo rm -rf /var/cache/.guestfs-*
echo dash | sudo tee /usr/lib/x86_64-linux-gnu/guestfs/supermin.d/zz-dash-packages
sudo chmod +r /boot/vmlinuz-*
# Create a test image.
mkdir sysroot
dd if=/dev/urandom of=sysroot/myfile bs=1024 count=1024
virt-make-fs --format=raw --type=ext2 sysroot sysroot.ext2
# Mount it, have fun, unmount!
mkdir -p mnt
# /dev/sda becuase we have a raw filesystem.
guestmount -a sysroot.ext2.qcow2 -m /dev/sda mnt
cmp sysroot/myfile mnt/myfile
guestunmount mnt
  • userland implementation of the filesystems
  • FUSE

Tested on Ubuntu 18.04, libguestfs-tools 1:1.36.13-1ubuntu3.

answered Jun 17, 2018 at 13:35

Ciro Santilli OurBigBook.com's user avatar

You do not have the permissions necessary to view the contents of “Elements”.

I can totally mount it as root with

sudo mount -t ntfs-3g /dev/sdb1 /media/Elements
cd /media/Elements
sudo chown -R -v sarah:sarah

which propped up my hopes as the whole output was similar to

changed ownership of 'Volumes' from root:root to sarah:sarah

Here’s the fstab content:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda4 during installation
UUID=9a4ff421-d5ab-4d26-a635-f9fd111d7eec / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=67E3-17ED /boot/efi vfat umask=0077 0 1
# swap was on /dev/sda5 during installation
UUID=bbf1370f-c5c6-4398-b8ef-7d6092450df8 none swap sw 0 0

The disks look like this for fdisk -l ; ls -l /dev/disk/by-uuid/

Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 409640 488746431 488336792 232,9G Apple HFS/HFS+
/dev/sda3 488746432 490015967 1269536 619,9M Apple boot
/dev/sda4 490016768 968577023 478560256 228,2G Linux filesystem
/dev/sda5 968577024 976771071 8194048 3,9G Linux swap
Disk /dev/sdb: 931,5 GiB, 1000170586112 bytes, 1953458176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa635339d
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1953458175 1953456128 931,5G 7 HPFS/NTFS/exFAT
total 0
lrwxrwxrwx 1 root root 10 maj 8 20:26 072d92f8-9fe6-3e97-8dc8-b974961cd0ea -> ../../sda2
lrwxrwxrwx 1 root root 10 maj 8 20:26 67E3-17ED -> ../../sda1
lrwxrwxrwx 1 root root 10 maj 8 20:26 876e8119-57e2-37e2-bc4a-2a1ddc3d4de4 -> ../../sda3
lrwxrwxrwx 1 root root 10 maj 8 22:35 9092472B924714DE -> ../../sdb1
lrwxrwxrwx 1 root root 10 maj 8 20:26 9a4ff421-d5ab-4d26-a635-f9fd111d7eec -> ../../sda4
lrwxrwxrwx 1 root root 10 maj 8 20:26 bbf1370f-c5c6-4398-b8ef-7d6092450df8 -> ../../sda5

I know there are similar questions but I get some specific problem I can’t overcome.

  • HDD split into two partitions. /dev/sdb1 and /dev/sdb2. sdb1 is NTFS and I don’t need it. I need sdb2 which is fat32.
  • Ubuntu 12.04.1 LTS (server)

Problems I’m facing:

Using manual mount from command line.

If I just use

server# sudo mount /dev/sdb2 /home/storage

If I use mount with options: server# sudo mount /dev/sdb2 /home/storage -o umask=000 I get what I need. A bit overdone of course, since the storage folder becomes writable for everyone. BUT — that is manually mounted — now i need it to remount on every reboot.

Remounting on reboot — using fstab**

So I thought I’ll be fine if I use fstab to mount this partition (/dev/sdb2) every time i reboot. The fstab line I added:

UUID=8C52-C1CD /home/storage auto user,umask=000,utf8,noauto 0 0
fsck from util-linux 2.20.1
/dev/sda5: clean, 120559/10969088 files, 19960144/43861504 blocks
mount: unknown filesystem type 'static'
mountall: mount /etc/fstab: [772] terminated with status 32
mountall: Filesystem could not be mounted: /etc/fstab:
Skipping /etc/fstab: at user request

And also — sudo mount -a never really does anything.

What am I doing wrong? I do suspect I messed up something:)

Если Вам нужно подключить/примонтировать жесткий диск с файловой системой NTFS или ext2, ext3 к компьютеру на базе операционной системы Linux, то Вы читаете правильную статью.

Зачем делать это руками, если современные desktop-системы Линукс делают автоматически?

Есть отдельные случаи когда система Linux не может автоматически примонтировать/подключить диск в силу каких-то логических сбоев диска, вирусов, которыми заражены NTFS/FAT разделах или из-за еще чего-то аномального. Для этого настоящие системные администраторы делают это руками. И делают это командой mount.

Команда mount в линуксе является очень гибким инструментом в руках системного администратора. С помощью команды mount можно подключить сетевой диск, раздел жесткого диска или -накопитель.

Данная статья не является полным, исчерпывающим описанием команды mount (полное описание команды mount можно найти выполнив в консоли команду man mount), но стремиться к этому. Статья по описанию команды mount постоянно дорабатывается и видоизменяется. Все пожелания по статье можете оставлять в комментариях.

Устройства, которые в данный момент подключены к компьютеру, можно посмотреть набрав в консоли:

sudo fdisk -l

Эта команда показывает все устройства, которые подключенны. Они могут быть не примонтированы, но подключены. На экране Вы увидите примерно это:

Disk /dev/sda: 72 GiB, 77309411328 bytes, 150994944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0×45679ae0
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4095 2048 1M 83 Linux
/dev/sda2 4096 150994943 150990848 72G 83 Linux
Disk /dev/sdc: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf95b5e03
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 104857599 104855552 50G 83 Linux

Из листинга выше видно, что к операционной системе подключено:

  1. два жестких диска: /dev/sda – операционная система
  2. сменный -носитель: /dev/sdc

Просмотр примонтированых устройств осуществляется командой:

После этого на экране можно увидеть:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=20553192k,nr_inodes=5138298,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=4117216k,mode=755)
/dev/sda2 on / type ext4 (rw,relatime,data=ordered)
/dev/sdc1 on /var/www/html/cb/tmp type ext4 (rw,relatime,data=ordered)
  • в первой строке сообщается, что в качестве корневой ФС выступает файловая система reiserfs с параметрами монтирования: доступ на чтение и запись (rw)
  • /dev/sda3 — это раздел диска /home
  • /dev/sdc — это примонтированное сменное -устройство

Этого же результата можно достигнуть посмотрев содержимое файла /etc/mtab (в некоторых системах Linux файл называется /etc/mnt/tab)

Монтирование разделов жесткого диска

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

Так же этот параметр может принимать значения:

  • -t ntfsили -t ntfs-3g
  • -t vfat
  • -t iso9660

Соответственно для , и CD-дисков файловых систем. Последний нужен только для подключения CD/DVD- устройств и образа диска .iso.

Чтобы вручную задать параметры доступа к примонтированному разделу следует указать параметр:

  • -o rw
  • -o ro

Первый разрешает чтение и запись, второй только чтение. Ну например, так:

Дополнительные параметры, которые помогают в некоторых случаях:

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

Если все же жесткий диск отказывается монтироваться в операционной системе Linux, то можно примонтировать его вручную. Параметр -o force позволяет принудительно монтировать разделы жесткого диска в линуксе. Ну, к примеру, так:

У меня, к примеру, раздел жесткого диска не хотел монтироваться после подключения к Windows-машине, которая была заражена вирусами. Так получилось, что вирус кинул autorun.exe в корень моего раздела и Linux из-за этого не хотел монтировать этот раздел. Данный выше параметр команды mount помог примонтировать инфицированный раздел. После чего вирус успешно был удален вручную.

Дополнительно:  Deglycyrrhizinated licorice root extract для чего

Действие команды mount —bind напоминает -овский subst.

Посмотреть полную информацию(доступный объем диска, свободное место) о примонтированных устройствах можно командой:

Отмонтироватние устройства производится командой:

sudo umount /dev/sdb1

Монтирование дисков CD/DVD-

Если Вам нужно примонтировать CD/DVD-, то монтирование CD/DVD- осуществляется точно так же, той же командой mount, которая были приведены выше:

sudo mount -t iso9660 -o ro /dev/cdrom /cd

Только при монтировании CD- нужно указать тип файловой системы iso9660.

Монтирование образов диска

Если Вы хотите примонтировать образ диска , то это тоже достаточно просто сделать командой mount:

sudo mount -t iso9660 -o loop /home/file.iso /home/iso

Где /home/file.iso — путь и имя файла

/home/iso — точка монтирования

Добавился только параметр -o loop, который указывает, что используется файл .iso.

Монтирование сетевых дисков

В некоторых случаях необходимо примонтировать удаленный сетевой диск. В некоторых дистрибутивах Linux, он так же монтируется автоматически (например в Ubuntu) при открытии его по сети. Можно примонтировать его вручную командой mount через консоль. Можно сделать ярлык и поместив его на рабочем столе активировать его когда нужен удаленный доступ к сетевому ресурсу. Ну или мало еще для чего.

Графические инструменты монтирования в Linux

Root file system is mounted read-only on boot on Gentoo Linux


Эксперт по Linux и Windows

Опытный системный администратор с большим стажем работы на крупном российском заводе. Иван является энтузиастом OpenSource и любителем Windows, проявляя высокую компетентность в обоих операционных системах.

Благодаря его технической грамотности и умению решать сложные задачи, Иван стал неотъемлемой частью команды нашего проекта, обеспечивая непрерывную авторскую работу.

Оглавление

1. Основы монтирования и использования команды mount

1.1 Что такое монтирование

1.2 Как соотносится операция монтирования с разбивкой на разделы и форматированием

1.3 Что нужно для монтирования

1.4 Указание типа файловой системы

1.5 Как увидеть точки монтирования

1.6 Как смонтировать диск

1.7 Как смонтировать диск только для чтения

1.8 Как размонтировать диск

1.9 Операция привязки bind

1.10 Перемещение точки монтирования

1.11 Как перемонтировать диск

1.12 Просмотр информации о блочных устройствах

2. Монтирование образов дисков и доступ к файлам на них

2.1 Как просмотреть информации об образах для монтирования. Как определить файловую систему образа

2.2 Как смонтировать файл образа диска (раздела)

2.3 Пример просмотра содержимого образов с помощью монтирования

3. Таблица файловых систем /etc/fstab

3.1 Структура записей в /etc/fstab

3.2 Управление опциями монтирования с помощью /etc/fstab

3.3 Проверка файла /etc/fstab

4. Доступ к содержимому дисков виртуальных машин и их изменение

5. Файловая система в оперативной памяти

6. Автоматическое монтирование и его отключение

6.1 Включение и отключение автоматического монтирования на уровне графического окружения рабочего стола

6.2 Включение и отключение автоматического монтирования на уровне udev

6.3 Автоматическое монтирование с помощью udisks2 и udiskie

7. Монтирование сетевых файловых систем

8. Опции команды mount и опции монтирования

8.1 Опции команды mount

8.2 Опции монтирования, не зависящие от файловой системы

8.3 Опции монтирования, специфичные для файловых систем

8.4 Файловые системы ext4, ext3, ext2, ext

8.5 Опции монтирования для ext2

8.6 Опции монтирования для ext3

8.7 Опции монтирования для ext4

8.8 Опции монтирования для ntfs

8.8.1 Опции монтирования для ntfs-3g

8.9 Опции монтирования для fat

8.10 Опции монтирования для exfat

8.11 Опции монтирования для umsdos

8.12 Опции монтирования для msdos

8.13 Опции монтирования для vfat

8.14 Опции монтирования для vboxsf

8.15 Опции монтирования для iso9660

8.16 Опции монтирования для udf

8.17 Опции монтирования для fuse

8.18 Опции монтирования для tmpfs

8.19 Опции монтирования для cifs и smb3

8.20 Опции монтирования sshfs

8.21 Опции монтирования для btrfs

8.22 Опции монтирования для adfs

8.23 Опции монтирования для affs

8.24 Опции монтирования для debugfs

8.25 Опции монтирования для devpts

8.26 Опции монтирования для hfs

8.27 Опции монтирования для hpfs

8.28 Опции монтирования для jfs

8.29 Опции монтирования для ncpfs

8.30 Опции монтирования для overlay

8.31 Опции монтирования для reiserfs

8.32 Опции монтирования для ubifs

8.33 Опции монтирования для ufs

8.34 Опции монтирования для usbfs

8.35 Опции монтирования для NFS

8.36 Опции монтирования для XFS

8.37 Опции монтирования для NILFS2


Основы монтирования и использования команды mount

Что такое монтирование

Монтирование в Linux позволяет получить доступ к содержимому диска и организовать структуру файловой системы. С помощью монтирования также можно открыть для работы образ диска (например, созданного с помощью программы dd), а также открыть для доступа и редактирования самые разные файловые системы и образы дисков (например, образы дисков виртуальных машин); даже удалённые сетевые директории могут быть смонтированы, в результате чего они станут доступны как будто бы файлы на любом другом локальном хранилище.

Кроме того, что с помощью монтирования можно работать с образами дисков, правильные настройки монтирования необходимы для компьютера к которому подключается диск для криминалистического анализа — например, этот диск не должен автоматически монтироваться с правами записи (чтобы не быть испорченным).

В Linux есть такое понятие как «монтирование» диска. Чтобы получить доступ к файлам на этом диске, его нужно сначала смонтировать. Может возникнуть вопрос, зачем такие сложности? Монтирование это мощнейшая вещь, которая позволяет поразительно гибко настроить файловую систему!

Суть монтирования в том, что в файловой системе создаётся новая директория (обычная папка), допустим, это папка /mnt/disk_d. А затем командой mount указывается, что теперь, например, диск /dev/sda смонтирован в директорию /mnt/disk_d. После этого можно получить доступ к файлам диска /dev/sda открыв папку /mnt/disk_d в любом менеджере файлов:

Root file system is mounted read-only on boot on Gentoo Linux

С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!

Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.

Ещё монтирование позволяет выбрать различные режимы, например, диск можно смонтировать в режиме «только чтение» — в результате с него можно будет просматривать файлы, но испортить этот диск невозможно.

В общем, несмотря на то, что монтирование является чем-то непривычным для пользователей Windows, это потрясающая функция! Причём ничего сложного в этом нет, если понять суть.

Как соотносится операция монтирования с разбивкой на разделы и форматированием

Монтирование — это один из видов действий, которые можно выполнять с диском (блочным устройством). Обращаясь к устройству по его имени /dev/* возможно:

  • создавать новые разделы
  • удалять существующие разделы
  • форматировать разделы или весь диск
  • выполнять низкоуровневые настройки на уровне устройства (установка флага только чтение на уровне диска, выполнять сброс кэша записи на диске, контроль Advanced Power Management и прочее), а также считывать значения этих настроек и свойств диска
  • клонировать содержимое диска с помощью команды dd (или аналогов) в файл или на другой диск
  • восстанавливать содержимое диска из файла командой dd
  • монтировать разделы диска (или весь диск, если он не разбит на разделы)

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

Чтобы выяснить, какая программа препятствует операции размонтирования/перемонтирования, можно использовать программу lsof следующим образом:

lsof /ТОЧКА/МОНТИРОВАНИЯ/

Например, я пытаюсь перемонтировать диск, смонтированный в директорию /mnt/disk_d/ и получаю ошибку, что диск используется. Чтобы определить, какая команда это делает, я запускаю:

lsof /mnt/disk_d/

Root file system is mounted read-only on boot on Gentoo Linux

Как можно увидеть, данной программой является doublecmd, идентификатором процесса, по которому её можно выключить с помощью команды kill, является 14470, также показано, что программу запустил пользователь mial, а также показано, какой именно файл или папка являются открытыми (колонка NAME).

Что нужно для монтирования

Для того чтобы компьютер смог успешно работать с файловой системой, необходимо, чтобы Linux поддерживал данную файловую систему. К счастью, в ядро Linux уже встроена поддержка большинства файловых систем, с которыми вы можете столкнуться.

Самыми распространёнными файловыми системами являются ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs и cifs.

Уже на этапе установке Linux из ISO образа вы могли сталкиваться с одной из этих файловых систем. Образ диска ISO сам по себе является файловой системой iso9660. Но это ещё не всё, на образе файлы дистрибутива могут быть упакованы в файлы *.sfs — это файловая система sysfs (так сделано в Manjaro). На установочном образе Linux Mint вы сможете найти файл filesystem.squashfs, это файловая система Squashfs.

Содержимое установочного диска Manjaro:

Root file system is mounted read-only on boot on Gentoo Linux

Содержимое установочного диска Linux Mint:

Root file system is mounted read-only on boot on Gentoo Linux

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

Чтобы просмотреть список всех поддерживаемых файловых систем на вашем дистрибутиве, выполните следующие команды:

cat /proc/filesystems
ls -l /lib/modules/$(uname -r)/kernel/fs

Root file system is mounted read-only on boot on Gentoo Linux

Для работы с ещё более экзотическими файловыми системами, такими как образы дисков виртуальных машин, может понадобиться установка дополнительного программного обеспечения — об этом далее.

Поддержка файловой системы NTFS (по умолчанию используется в современных версиях Windows в качестве основной файловой системы) в Linux также имеется. Ядро обеспечивает базовую поддержку — доступ для чтения файлов. Для полной поддержки с возможностью записи необходимо установить драйвер ntfs-3g.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install ntfs-3g

Для установки в Arch Linux и производные:

sudo pacman -S ntfs-3g

Подробности смотрите в статье «Диск Windows монтируется только для чтения (РЕШЕНО)».

Поддержка exFAT должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите драйвер и пакет утилит.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install exfat-fuse exfatprogs

Для установки в Arch Linux и производные:

sudo pacman -S exfatprogs

Поддержка Network File Systems (NFS) должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите пакет утилит, включающий программу-помощник для монтирования.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install libnfs-utils

Для установки в Arch Linux и производные:

sudo pacman -S nfs-utils

Поддержка NILFS2 должна уже присутствовать на уровне ядра, но если у вас какие-то проблемы с данной файловой системой, то установите пакет утилит, включающий программу-помощник для монтирования.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

sudo apt install nilfs-tools

Для установки в Arch Linux и производные:

sudo pacman -S nilfs-utils

Все остальные файловые системы поддерживаются ядром Linux. Имеется ввиду возможность монтирования. Если необходимо выполнить создание, проверку, изменение свойств файловых систем и другие операции, то для этого может потребоваться установка дополнительных пакетов с предназначенными для этого утилитами.

Указание типа файловой системы

Программа mount способна самостоятельно определить тип файловой системы, либо тип можно указать явно с помощью опции -t. Если опция -t не указана или указан тип auto, mount попытается угадать желаемый тип. Mount использует библиотеку blkid для определения типа файловой системы; если при этом не появится ничего знакомого, mount попытается прочитать файл /etc/filesystems или, если он не существует, /proc/filesystems. Будут опробованы все перечисленные там типы файловых систем, кроме тех, которые помечены как «nodev» (например, devpts, proc и nfs). Если /etc/filesystems оканчивается строкой с одним *, то mount затем прочитает /proc/filesystems. Во время попытки все типы файловых систем будут смонтированы с опцией монтирования silent.

Итак, подытожим, для монтирования нам не нужно беспокоиться о типе файловой системы, поскольку она определяется автоматически. Нам не нужно заботиться о поддерживаемых типах файловых систем, поскольку ядро Linux имеет встроенную поддержку большинства из них.

Дополнительно:  VirtualBox — Effective UID is not root

Как увидеть точки монтирования

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

findmnt --real

Root file system is mounted read-only on boot on Gentoo Linux

Эта команда отображает целевую точку монтирования (TARGET), исходное устройство (SOURCE), тип файловой системы (FSTYPE) и соответствующие параметры монтирования (OPTIONS) для каждой файловой системы, как показано на скриншоте. Подробности смотрите в статье «Команда findmnt для просмотра смонтированных файловых систем в Linux».

Команда findmnt без опций покажет больше данных:

findmnt

Root file system is mounted read-only on boot on Gentoo Linux

Но среди вывода будут различные виртуальные файловые системы, которые нужны не всегда.

Команда mount также может показывать список точек монтирования, но эта функция в ней поддерживается только для обратной совместимости. Тем не менее, для вывода смонтированных реальных файловых систем вы можете использовать команду:

mount | grep "^/dev"

Root file system is mounted read-only on boot on Gentoo Linux

А для показа всех точек монтирования, запустите команду следующим образом:

mount

Root file system is mounted read-only on boot on Gentoo Linux

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

findmnt -p

Root file system is mounted read-only on boot on Gentoo Linux

Как смонтировать диск

Общая команда монтирования диска имеет вид:

mount ОПЦИИ УСТРОЙСТВО ДИРЕКТОРИЯ
  • ОПЦИИ — опции утилиты mount или опции монтирования
  • УСТРОЙСТВО — блочное устройство или файл образа, который мы хотим подключить к файловой системе
  • ДИРЕКТОРИЯ — папка, где будут доступны файлы со смонтированного устройства

Среди ОПЦИЙ можно указать, например, тип файловой системы или режим только для чтения (по умолчанию монтирование выполняется для чтения и для записи). Существует большое количество опций, некоторые из которых применимы для всех файловых систем, а некоторые из которых специфичны только для определённых файловых систем. Программа mount имеет свои опции, которые относятся к поведению этой утилиты, а также имеются опции, которые относятся к файловым системам, такие опции указываются после -o.

Некоторые опции можно указать любым из этих способов, например, опцию -w, которая означает монтирование для чтения и записи (её псевдонимы —rw, —read-write), также можно указать как «-o rw».

Справочная информация по опциям будет приведена в конце данной статьи.

На самом деле, если вы хотите смонтировать диск для чтения и записи, то можно не указывать никакие опции.

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

sudo mount /dev/имя_раздела /точка/монтирования/

Допустим, я хочу, чтобы новый диск с именем /dev/sda был подключён (смонтирован) к папке /mnt/disk_d (название папки можно выбрать любое, а точка монтирования необязательно должна быть в директории /mnt/ — можно сделать в домашней папке или в любой другой).

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

sudo mkdir /mnt/disk_d

Монтируем диск /dev/sda:

sudo mount /dev/sda /mnt/disk_d

Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:

sudo chmod 0777 /mnt/disk_d

На самом деле, права доступа можно настроить более тонко — без полного разрешения для всех.

Как смонтировать диск только для чтения

Для монтирования диска с правами записи, используется любая из опций: -w, —rw, —read-write, -o rw. На самом деле, ни одну из них указывать не нужно, поскольку монтирования с правами записи является поведением по умолчанию.

Чтобы смонтировать диск только с правами чтения, используйте любой из вариантов опции: -r, —read-only, -o ro.

sudo blockdev --setro УСТРОЙСТВО

Программа hdparm также позволяет установить флаг read-only устройства. Когда значение read-only установлено на 1, Linux не разрешает операции записи на устройство.

Чтобы установить флаг read-only:

sudo hdparm -r1 /dev/ДИСК

Чтобы снять флаг read-only (устройство станет доступным для записи):

sudo hdparm -r0 /dev/ДИСК

Чтобы проверить текущее состояние флага read-only:

sudo hdparm -r /dev/ДИСК

Пример проверки значения флага read-only для диска /dev/nvme0n1:

sudo hdparm -r /dev/nvme0n1

Вывод (режим только чтение отключён, то есть возможна запись на устройство):

/dev/nvme0n1: readonly = 0 (off)

Альтернативный (классический) способ создания монтирования привязки только для чтения — использовать операцию повторного монтирования, например:

mount --bind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ
mount -o remount,bind,ro СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

О привязке (bind) и перемонтировании будет далее.

Как размонтировать диск

Для размонтирования диска используется любая из двух команд:

sudo umount /dev/имя_раздела
sudo umount /точка/монтирования/

Частой ошибкой является когда указывают с командой umount одновременно ени диска и точки монтирования — нужно указать только что-то одно.

Если вы получили ошибку, что диск занят, это означает, что какая-то программа держит открытым файл на этом диске. Чтобы выяснить, какая программа препятствует операции размонтирования/перемонтирования, можно использовать программу lsof следующим образом:

lsof /ТОЧКА/МОНТИРОВАНИЯ/

Операция привязки bind

Для перемонтирования файловой иерархии в другое место используется команда вида:

mount --bind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

После этого вызова одно и то же содержимое станет доступно в двух местах.

Важно понимать, что «привязка» не создаёт никаких узлов второго класса или специальных узлов в VFS ядра. «Привязка» — это просто ещё одна операция по присоединению файловой системы. Нигде не хранится информация о том, что файловая система была прикреплена операцией «привязки». СТАРАЯ_ДИРЕКТОРИЯ и НОВАЯ_ДИРЕКТОРИЯ независимы, более того, СТАРУЮ_ДИРЕКТОРИЮ можно размонтировать.

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

mount --bind foo foo

Вызов привязки mount подключает только (часть) единичной файловой системы, но не возможные подмонтирования. Всю файловую иерархию, включая субмонтирования, можно прикрепить на втором месте, используя:

mount --rbind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

Обратите внимание, что параметры монтирования файловой системы, поддерживаемые ядром, останутся такими же, как и в исходной точке монтирования. Параметры монтирования в пользовательском пространстве (например, _netdev) не будут скопированы при монтировании, и необходимо явно указать параметры в командной строке монтирования.

Начиная с util-linux 2.27 mount позволяет изменять параметры монтирования, передавая соответствующие параметры вместе с —bind. Например:

mount -o bind,ro foo foo

Эта функция не поддерживается ядром Linux; она реализуется в пользовательском пространстве с помощью дополнительного системного вызова перемонтирования mount. Это решение не атомарно.

Альтернативный (классический) способ создания монтирования привязки только для чтения — использовать операцию повторного монтирования, например:

mount --bind СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ
mount -o remount,bind,ro СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

Обратите внимание, что привязка только для чтения создаст точку монтирования только для чтения (запись VFS), но исходный суперблок файловой системы по-прежнему будет доступен для записи, что означает, что СТАРАЯ_ДИРЕКТОРИЯ будет доступна для записи, а НОВАЯ_ДИРЕКТОРИЯ будет доступна только для чтения.

Также можно изменить флаги записи VFS nosuid, nodev, noexec, noatime, nodiratime и relatime с помощью операции «remount,bind«. Остальные флаги (например, специфичные для файловой системы) игнорируются. Рекурсивно изменить параметры монтирования (например, с -o rbind,ro) невозможно.

Начиная с util-linux 2.31, mount игнорирует флаг привязки из /etc/fstab при операции повторного монтирования (если в командной строке указано «-o remount»). Это необходимо для полного управления параметрами монтирования при повторном подключении из командной строки. В предыдущих версиях всегда применялся флаг привязки, и было невозможно повторно определить параметры монтирования без взаимодействия с семантикой связывания. Такое поведение mount не влияет на ситуации, когда в файле /etc/fstab указано «remount,bind».

Перемещение точки монтирования

Можно переместить точку монтирования в другую директорию, для этого используется команда вида:

mount --move СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ

Это приведёт к тому, что содержимое, которое ранее отображалось в СТАРАЯ_ДИРЕКТОРИЯ, теперь будет доступно в НОВАЯ_ДИРЕКТОРИЯ. Физическое расположение файлов не меняется. Обратите внимание, что СТАРАЯ_ДИРЕКТОРИЯ должен быть точкой монтирования.

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

findmnt -o TARGET,PROPAGATION

Как перемонтировать диск

Можно перемонтировать уже смонтированную файловую систему. Обычно это используется для изменения флагов монтирования файловой системы, особенно для того, чтобы сделать файловую систему доступной для записи. Это не меняет устройство или точку монтирования. Эта операция отличается от предыдущих двух: от привязки и перемещения она отличается тем, что не создаётся новая точка монтирования и не перемещается точка монтирования, но меняются опции монтирования.

Функциональность повторного монтирования соответствует стандартному способу работы команды mount с параметрами из fstab. Это означает, что mount не читает fstab (или mtab) только тогда, когда указаны и устройство, и каталог.

Команда перемонтирования имеет общий вид:

sudo mount ОПЦИИ -o remount /ТОЧКА/МОНТИРОВАНИЯ

К примеру, чтобы перемонтировать диск, смонтированный в /mnt/disk_d, установив права доступа на «только для чтения»:

sudo mount -r -o remount /mnt/disk_d

Можно также указать одновременно устройство и точку монтирования:

sudo mount ОПЦИИ -o remount /dev/УСТРОЙСТВО /ТОЧКА/МОНТИРОВАНИЯ

Пример перемонтирования корневой файловой системы с опцией «чтение и запись»:

mount -rw -o remount /

Опция «чтение и запись» может быть помещена в опцию строки команды -o, например:

mount -o remount,rw /dev/УСТРОЙСТВО /ТОЧКА/МОНТИРОВАНИЯ

После этого вызова все старые параметры монтирования заменяются, а произвольные данные из fstab (или mtab) игнорируются, за исключением параметра loop=, который генерируется внутри и поддерживается командой mount.

После этого вызова mount читает fstab и объединяет эти параметры с параметрами из командной строки (-o). Если в fstab не найдена точка монтирования, разрешается повторное монтирование с неуказанным источником.

mount позволяет использовать —all для повторного монтирования всех уже смонтированных файловых систем, соответствующих указанному фильтру (-O и -t). Например, команда:

mount --all -o remount,ro -t vfat

перемонтирует все уже смонтированные файловые системы vfat в режим только для чтения. Каждая файловая система перемонтируется семантикой «mount -o remount,ro /dir». Это означает, что команда mount считывает fstab или mtab и объединяет эти параметры с параметрами из командной строки.

Просмотр информации о блочных устройствах

Чтобы смонтировать диск (или файл образа) достаточно указать имя устройства и папку, куда его смонтировать (где будут доступны файлы с этого диска). Как мы уже выяснили, не нужно даже указывать тип файловой системы.

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

В зависимости от используемой технологии дисков, у них могут быть другие имена. Пример имени диска NVMe: /dev/nvme0n1. В этом случае нумерация разделов также не подчиняется описанным выше правилам, первый и второй разделы имеют имена /dev/nvme0n1p1 и /dev/nvme0n1p2 соответственно.

Итак, необходимо правильно определить имя диска (или имя раздела, если диск разбит на разделы).

Обзорную информацию о дисках в системе может дать команда:

smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d sat # /dev/sdb [SAT], ATA device
/dev/nvme0 -d nvme # /dev/nvme0, NVMe device

На самом деле, вывод команды неполный (пропущена USB флешка) и в нём полностью отсутствует информация о разделах. Тем не менее она может помочь вам сориентироваться в присутствующих на вашей системе дисках.

Хорошим вариантом является следующая программа:

fdisk -l

Она выводит информацию о каждом диске и каждом разделе. В информации присутствует модель диска, размер и тип разделов — основываясь на этих данных можно найти название нужного раздела.

Root file system is mounted read-only on boot on Gentoo Linux

Если вы всё равно не можете разобраться, то со съёмными носителями (внешними USB дисками и флешками), вы можете поступить так: выполнить команду fdisk -l до подключения диска, затем подключить диск/флешку, выполнить команду fdisk -l ещё раз и посмотреть, какой диск добавился.

Если диск монтируется автоматически, то его имя можно увидеть с помощью команда мониторинга:

findmnt -p

Ещё одна команда, показывающая обзорную информацию об именах дисках, их файловых системах, ярлык и занятое пространство (в процентах) и доступный объём свободного места (в гигабайтах):

lsblk -f

Root file system is mounted read-only on boot on Gentoo Linux

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

blkid

Если вы уже почти определились с разделом и хотите подтвердить свою правоту, то информацию по конкретному разделу можно получить командой вида:

blkid /dev/РАЗДЕЛ
/dev/sdb4: BLOCK_SIZE="512" UUID="CA966DBC966DA9A1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="19fe120d-27b7-40a1-87a0-010d03a2f20e"

Команда file также может рассказать много интересного про раздел:

file -sL /dev/РАЗДЕЛ
/dev/sdb4: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 1323008, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors/track 63, sectors 248745983, $MFT start cluster 786432, $MFTMirror start cluster 2, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 0ca966dbc966da9a1; contains bootstrap BOOTMGR

Оцените статью
Master Hi-technology