Ремонт компьютеров, ноутбуков и оргтехники в Орле
 
» » Монтирование дисков в Linux (Монтирование Windows ресурсов в Linux)

Монтирование дисков в Linux (Монтирование Windows ресурсов в Linux)

Автор: nix от 3-12-2014, 21:45

Mount – это утилита командной строки UNIX систем. С ее помощью можно смонтировать практически что угодно и куда угодно (В рамках разумного). Так что напишу небольшую заметочку что и как монтируется. Монтирование HDD и DVD Rom или сетевой папки в Linux делается очень просто, не зависимо от файловой системы. (Пожалуй, только если Ваш диск не развалился в RAW :D ) Для начала простое монтирование HDD и CD/DVD, и закончим монтированием удаленных папок Windows.  

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

Перед тем как что-то куда-то монтировать нужно знать что и куда Вы будете монтировать. Поэтому начнем с того что посмотрим список всех подключенных устройств к Вашему серверу\рабочей станции. Для этого используем не хитрую команду:

1
sudo fdisk –l 

 

 

На картинке мы видим, что на данный момент к моему компьютеру подключено два жестких диска. 500Gb и 250Gb соответственно. Диски могут быть подключены, но не примонтированы.

/dev/sda (500Gb. Диск на котором у меня установлена система)
/dev/sdb (250Gb. Диск который нам нужно смонтировать)

Теперь просмотрим примонтированные диски:

1
sudo mount

 

Если посмотреть первую строку вывода (/dev/sda1 on / type ext4 (rw, errors=remount-ro,commit=0)) можно сказать меня примонтирован только один раздел. Это /dev/sda1, его файловая система ext4 и он смонтирован в режиме rw (чтение запись.) в корневой раздел /

Примечание! Посмотреть информацию примонтированных устройств можно при помощи команды:

1
df –h

Значит диск /dev/sdb подключен, но не примонтирован. Теперь примонтироуем его скажем в каталог mount. Для этого создадим каталог:

1
mkdir /home/username/mount

и выполним монтирование диска командной:

1
sudo mount /dev/sdb1 /home/username/mount

Все очень просто. Сначала вызывается команда mount, первым параметром указывается что монтировать, вторым параметром куда монтировать. Данная команда монтирует диск /dev/sdb1 в каталог /home/username/mount. Где username имя вашего пользователя.

После удачного монтирования, консоль не выдаст ни каких сообщений. Теперь достаточно просто перейти в каталог mount, что бы получить доступ к вашему диску.

Монтирование NTFS дисков нужно осуществлять с указанием типа файловой системы. Для монтирования NTFS раздела укажем тип файловой системы:

1
mount -t ntfs /dev/sdb1 /home/username/mount

Теперь появился ключ «-t». Он может принимать вот такие значения:
• ntfs (Разделы NTFS)
• ntfs-3g (Разделы NTFS)
• vfat (Разделы FAT)
• iso9660 (Для монтирования CD/DVD Rom или образов ISO)
• ext3, ext4 (Для файловых систем ext3 и ext4 соответственно. Редко когда нужно указывать эти ФС явно)

Теперь немного о монтировании с указанием параметров доступа. Он указывается с помощью ключа «-o». Параметры бывают двух типов:

rw (Read/Write – Чтение/Запись)
ro (Read only – Только чтение)

Пример команды: Монтирование только для чтения:

1
mount -t ntfs –o ro /dev/sdb1 /home/username/mount

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

1
mount -t ntfs –o rw /dev/sdb1 /home/username/mount

Принудительное монтирование дисков. Бывает так, что диск не хочет монтироваться в Linux. Можно заставить его «силой». Опять же используем ключ «-o» только с параметром «force»:

1
mount -t ntfs –o force /dev/sdb1 /home/username/mount

Отмонтировать устройство можно используя команду umount указав или точку монтирования, или сам раздел диска:

1
sudo umount  /dev/sdb1

или

1
sudo umount  /home/username/mount

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

Монтирование CD/DVD ROM в Linux так же осуществляется при помощи команды mount, только обязательно нужно указать тип файловой системы iso9660:

1
sudo mount -t iso9660 -o ro /dev/cdrom /home/username/CDROM

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

Для Windows написано столько программ для монтирования образов дисков, что все названия не упомнишь. К счастью в Linux это делается все той же командой mount. Только теперь ключ «-o» будет использоваться с командой loop:

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

Монтирование папки Windows удаленного компьютера (“Подключение сетевого диска в Linux”)

Вот и самое интересное. Не большое отступление. Предположим что у Вас сервер. Неважно какой, на пример сервер базы данных. Вы делаете резервное копирование и хотите, что бы резервирование сразу выполнялось с сохранением данных на компьютер в сети. Примонтируем расшаренный диск на Windows машине к нашей Linux системе. Вообще монтирование сетевого диска в Linux дело не сложное. Для начала нам нужно установить пакет smbfs, так что выполним команду:

1
sudo apt-get install smbfs

Теперь создадим каталог для монтирования сетевого диска, на пример share:

1
mkdir /home/username/share

Каталог готов. Так как некоторые компьютеры требуют авторизацию по Логину и Паролю, разберем две ситуации:

1) Общий доступ для всех без авторизации. Монтирование сетевого диска будет выполняться следующей командой:

1
sudo mount -t cifs //192.168.0.0/ShareFolger /home/username/share

или указав пользователя guest, тип кодировки utf8 если ресур позволяет Чтение/Запись:

1
sudo mount -t cifs //192.168.0.0/ShareFolger /home/username/share -o guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777

если Вам нужно иметь доступ только для чтения:

1
sudo mount -t cifs //192.168.0.0/ShareFolger /home/username/share -o guest,iocharset=utf8

2) Ресурс требует обязательной авторизации пользователя, используя Логин и Пароль:

1
sudo mount -t cifs //192.168.0.0/ShareFolger /home/username/share -o username=ИМЯ_ПОЛЬЗОВАТЕЛЯ,password=ПАРОЛЬ,iocharset=utf8,file_mode=0777,dir_mode=0777

Примечание! Замените 192.168.0.0 на IP адрес машины, на которой находится расшаренная папка.
Если вы хотите получить доступ к сетевому ресурсу не используя IP адрес, а через имя удаленного компьютера (netbios имя) то вам так же потребуется установка пакета winbind:

1
sudo apt-get install winbind

Автоматическое монтирование сетевых ресурсов в Linux

Для автоматического монтирования дисков и сетевых папок нужно будет «подправить» файл /etc/fstab.

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

1
//192.168.0.0/ShareFolger /home/username/share cifs guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

Если же нужно использовать авторизацию на удаленной машине, то дела обстоят немного «сложнее». Для начала нужно создать файл содержащий имя пользователя и пароль к удаленной системе. Создадим его в каталоге /home.

1
sudo touch /home/ShareLoginPass1

и добавим в него всего две строчки:

1
2
username=ИМЯ ПОЛЬЗОВАТЕЛЯ
password=ПАРОЛЬ

выставим права для того что бы смотреть файл могла только система:

1
sudo chmod 700 /home/ShareLoginPass1

Далее открываем файл /etc/fstab и добавляем в него вот такую строку:

1
//192.168.0.0/ShareFolger /home/username/share cifs credentials=/home/ShareLoginPass1,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

Примечание! Возможно вместо указания вместе с ключом -t придется указывать не cifs, а smbfs. Это актуально для всех видов монтирования сетевого диска Windows.

 

---------------------------------

 

Как правильно монтировать и прописывать в /etc/fstab разделы c NTFS.

Чтобы примонтировать раздел Windows c файловой системой NTFS, нужно установить драйвер ntfs-3g. Большинство дистрибутивов давно имеют его в своих репозитариях. Но вот листая Интернет, на какие только дикие советы не нарвешься порой.

А ведь использование этого драйвера крайне просто. Недаром это драйвер третьего поколения. Все опции, необходимые для его функционирования, входят в его настройки по умолчанию (default).

Поэтому достаточно прописать в /etc/fstab последней строкой :

 

/dev/sda1   /mnt/windows   ntfs-3g   defaults   0   0

Примечание: Такой опции у этого драйвера нет, но, если оставить поле пустым, то монтироваться ничего не будет — проверено на практике. Если же вы добавляете хоть одну опцию из числа существующих (смотрим man ntfs-3g по-русски), то и defaults вписывать незачем.

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

Если вы хотите, чтобы монтировать и отмонтировать NTFS разделы мог рядовой пользователь, то установите на драйвер setuid бит. Это делается так:

Найдите исполняемый файл драйвера:

 

# updatedb  (обновим базу данных, если драйвер только что установлен)
# locate ntfs-3g | grep bin
/sbin/mount.ntfs-3g
/usr/bin/ntfs-3g
/usr/bin/ntfs-3g.probe

Установите setuid бит:

 

# chmod u+s /usr/bin/ntfs-3g

Вот и все.

Если в вашей Linux системе неправильно установлена локаль и вместо русских букв вы видите кракозябры, то вам поможет опция:

 

/dev/sda1   /mnt/windows   ntfs-3g   locale=ru_RU.utf8   0   0

Обратите внимание, что следует указывать кодировку Linux системы.

Если вы не желаете, чтобы другие имели доступ к вашим Windows разделам, то примените опцию

 

/dev/sda1   /mnt/windows   ntfs-3g   umask=022,locale=ru_RU.utf8   0   0

Это даст доступ к файлам только тому, кто монтировал, а остальные смогут только читать. Если вы хотите, чтобы этим пользователем были вы, то добавьте свой uid в численной форме:

 

/dev/sda1   /mnt/windows   ntfs-3g   uid=1000,umask=022,locale=ru_RU.utf8   0   0

Ну, а теперь самое интересное.

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

 

# umount /mnt/windows

Все же штатные интерфейсы работы с разделами (типа "Компьютер" или "System" или "Places" и так далее) не позволят вам сделать это под самыми смехотворными предлогами. И это вполне объяснимо. Ведь примонтировался раздел еще на стадии загрузки, от имени root'а, а теперь вы хотите отмонтировать как рядовой пользователь.

Я уже собирался заканчивать эту статью, когда наскочил на этот феномен. Я боролся с ним целый день, выискивая образцы заполнения файла /etc/fstab в различных дистрибутивах, проверяяя их, выбрасывая по одной опции и перезагружаясь после каждой попытки. Это была работа! Но в результате я методом исключения нашел простейший вариант:

 

/dev/sda1   /mnt/windows   ntfs-3g   users   0   0

У меня в Debian Lenny это автоматически монтирует NTFS раздел при загрузке, и дает возможность рядовому пользователю отмонтировать его простым кликом мыши на значке в директории system:/media/. При желании можно смонтировать его обратно, тем же простым щелчком.

Я не могу этого объяснить. Никакой опции users драйвер ntfs-3g не поддерживает; более того, если написать user, то ничего работать не будет.

Кто понимает, в чем тут дело, тот пусть напишет комментарий к этой статье.

 

Приложение

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

Мануал NTFS-3G.PROBE

Название

ntfs-3g.probe — Проверяет возможность монтирования тома с файловой системой NTFS.

Синтаксис

ntfs-3g.probe <--readonly|--readwrite> том (раздел или диск или что-там у вас)

Описание

Утилита ntfs-3g.probe проверяет возможность монтировать раздел с NTFS только для чтения или на чтение/запись. Выводит соответствующий код завершения. Том может быть блочным устройством или файлом образа.

Опции

Ниже перечислены опции, которые понимает команда.

-r, --readonly

Проверить, можно ли примонтировать том только для чтения.

-w, --readwrite

Проверить, можно ли примонтировать том на чтение/запись.

-h, --help

Вывести помощь.

Пример

Проверить возможность монтирования /dev/sda1 на чтение/запись:
ntfs-3g.probe --readwrite /dev/sda1

Коды завершения

0  Монтирование возможно
11 Синтаксическая ошибка, шелл не смог прочесть команду.
12 Том не содержит адекватной файловой системы NTFS.
13 Неполноценный NTFS, ошибка "железа" или драйвера, либо не установлено нужное оборудование для SoftRAID/FakeRAID.
14 NTFS раздел находится в состоянии гибернации. В этом случае можно применить опцию 'remove_hiberfile' команды ntfs-3g, что удалит гиберфайл и позволит примонтировать раздел на чтение/запись. Сохраненная сессия Windows будет уничтожена.
15 NTFS раздел был неправильно отмонтирован. Поможет опция 'force' команды ntfs-3g, которая очистит журнал NTFS.
16 Том уже открыт и используется драйвером ядра или программными методами.
17 Оборудование для SoftRAID/FakeRAID не подключено, либо отсутствует, либо не имеет питания.
18 Причина не ясна.
19 Нет необходимых прав для монтирования.
20 Не хватает памяти
21 Неизвестная ошибка FUSE
22 Угроза безопасности. Выполнение запрещено из-за возможности несанкционированного использования.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
 

Добро пожаловать
на сайт
сервисного центра.
НИКС