Монтування розділів і дисків в Linux
Рано чи пізно користувачі Linux стикаються з таким поняттям як монтування розділів і дисків в Linux. Багато, особливо колишні користувачі Windows, зазнають труднощів з монтуванням розділів, хоча якщо задуматися, то все дуже просто і логічно. Нижче наводяться опис процесу монтування в UNIX-like системах і розбір найбільш типових випадків. І навіть якщо ви оточені графічним інтерфейсом, знання консольних команд може дуже стати в нагоді. Крім того, дізнавшись пару-трійку корисних команд UNIX, ви долучитеся до цієї чорної магії і, може бути, почнете її використовувати.
Монтування розділів в Linux - загальні слова
Якщо ядро Linux впізнали ваш пристрій-носій даних, то воно повинно надати якийсь зовнішній інтерфейс користувачу для роботи з пристроєм. Цим інтерфейсом є створення файлів-пристроїв в каталозі / dev
приклад:
Пристроїв, підключеним до IDE, будуть відповідати файли-пристрої / dev / hda, / dev / hdb і так далі.
Пристроїв типу SCSI, а також близькі їм за духом SATA-пристрої і USB-флешки, матимуть файли-пристрої / dev / sda, / dev / sdb тощо.
Якщо на диску є розділи, то цифра в імені файлу-пристрою буде відповідати номеру розділу.
У перекладі на мову UNIX, це звучить так:
mount -t vfat / dev / hda3 / mnt / storage
Якщо потрібно часто монтувати одні і ті ж розділи, занесіть їх в / etc / fstab - це загальносистемний конфиг, в якому вказані всі необхідні розділи для монтування. Редагувати цей файл може не аби хто, а тільки root. Так що розживемось рутовий повноваженнями і редагуйте / etc / fstab
Файл / etc / fstab складається з колонок, роздільниками між якими є символи табуляції (клавіша TAB). Ось приклад вмісту файлу / etc / fstab:
# / Etc / fstab: static file system information.
#
#
/ Dev / hda2 / reiserfs notail, noatime 0 1
/ Dev / hdb / mnt / cdrom iso9660 ro, user, noauto 0 0
/ Dev / sda1 / mnt / flash vfat iocharset = koi8-r, codepage = 866, rw, user, auto 0 0
Формат колонок такий:
Монтується пристрій (файл-пристрій, він же розділ, який ви хочете примонтировать)
Точка монтування (в яку директорію в файлової системі монтувати)
Тип монтируемой файлової системи
Опції монтування (кодування мови, необхідність монтування при старті)
Dump (зазвичай 0)
Pass (зазвичай 0)
Важливо, щоб ви вставляли Тab після кожної колонки при редагуванні / etc / fstab
Нижче наводяться уточнення для кожного випадку файлової системи, але ідея монтування розділів в Linux одна і та ж.
mount -t vfat / dev / hda1 / home / vasya / tempdir
прикрутити тип FAT що прикрутити куди це прикрутити
Пишемо буквально те, чого хочемо: від імені суперкористувача, прикрутити логічну структуру з файлової системою типу FAT, що знаходиться в файлі / dev / hda1, до каталогу / home / vasya / tempdir
Після всіх операцій розділ слід демонтувати, щоб дані на нього записалися з пам'яті - точно так само, як при роботі з флешками в Windows. Для цього слід дати команду:
# Umount / mnt / XX
або
$ Sudo umount / mnt / XX
де / mnt / XX - точка монтування. Якщо ні один додаток не працює з розділом, то розділ размонтіруйте, відключиться і дані на нього повністю запишуться. Після цього пристрій можна безпечно витягти.
Щоб подивитися, що можна змонтувати, і побачити інформацію про розділи, можна скористатися командою (запуск від root):
# Fdisk -l
Побачите щось на кшталт:
Disk / dev / hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors / track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/ Dev / hda1 1 36 289138+ 82 Linux swap / Solaris
/ Dev / hda2 * 37 7296 58315950 83 Linux
Все дуже просто і логічно. Як і багато іншого в UNIX.
Попередні дії перед монтуванням
Перш, ніж монтувати розділи, потрібно створити точки монтування. Точки монтування слід створювати в каталогах / mnt або / media.
Приклад: Для того, щоб створити точку монтування з назвою / mnt / win в консолі даємо команду:
$ Sudo mkdir / mnt / win
або
# Mkdir / mnt / win
і даємо каталогу права доступу для звичайних користувачів:
Це дозволить зчитувати і записувати дані не тільки суперкористувачеві-руту, а й звичайному користувачеві. Навіть якщо в системі ви - єдиний користувач. Свою точку монтування в директорії / mnt потрібно створити для кожного розділу.
Не бійтеся, якщо ви не знаєте точно, як тепер називаються ваші віндового диски C: або D: і монтують розділи з зазначенням типу файлової системи fat або ntfs - якщо помилитеся, розділ не прімонтіруется і ви побачите помилку на кшталт
mount: wrong fs type, bad option, bad superblock on / dev / sda2,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Чи не боїмося - просто нам команда mount сказала, що примонтировать у неї не вийшло.
Далі наводяться описи кількох типових випадків монтування розділів і файлів.
Як примонтировать розділ з файловою системою FAT в Linux
Найголовніше тут - кодування. Чудова корпорація Microsoft винайшла свою власну систему кодування CP866 для MS DOS, CP1251 для Windows і тільки останнім часом прозріла до UTF8. Дякуємо Microsoft за винахід велосипеда з трикутними колесами і приступаємо до монтування.
Одноразове монтування FAT
Тимчасове, одноразове монтування, наприклад, флешки, виглядає в командному рядку так:
$ Sudo mount -t vfat / dev / XX / mnt / YY -o iocharset = utf8, codepage = 866
або
# Mount -t vfat / dev / XX / mnt / YY -o iocharset = utf8, codepage = 866
Приклад: монтування типовою флешки виглядає так
$ Sudo mount -t vfat / dev / sda1 / mnt / flash -o iocharset = utf8, codepage = 866
Тобто монтуємо розділ / dev / sda1 типу vfat в точку монтування / mnt / flash
Як примонтировать розділ з файловою системою NTFS в Linux
Чудова корпорація Microsoft винайшла не просто новий велосипед з трикутними колесами NTFS, а ще й закрила його, треугольноколесатого велокактуса, опис. Та так, що довелося дуже довго його зламувати і створювати драйвера зворотного розробкою. Про складність проблеми дає зрозуміти опис дефрагментації NTFS, що, як то кажуть, вселяє.
Монтувати і записувати на NTFS в Linux, проте, можливо завдяки героїчним зусиллям розробників, які створили драйвер NTFS-3g. Цей драйвер можна встановити командою:
aptitude install ntfs-3g
або пошукати пакет ntfs-3g в графічній оболонці установки програм вашого улюбленого дистрибутива.
Одноразове монтування NTFS
Тимчасове, одноразове монтування, наприклад, розділу з даними Windows, виглядає так:
$ Sudo mount -t ntfs-3g / dev / XX / mnt / YY -o umask = 0, nls = utf8
або
# Mount -t ntfs-3g / dev / XX / mnt / YY -o umask = 0, nls = utf8
Приклад: монтування розділу Windows з NTFS розділом виглядає так
$ Sudo mount -t ntfs-3g / dev / sda1 / mnt / flash -o umask = 0, nls = utf8
Тобто монтуємо розділ / dev / sda1 типу ntfs-3g в точку монтування / mnt / flash
Постійне монтування NTFS
Якщо потрібно постійно звертатися до цих розділів, правимо / etc / fstab додаючи рядок:
/ Dev / XX / mnt / YY ntfs-3g umask = 0, nls = utf8, user, auto, rw 0 0
Приклад: та ж типова флешка в / etc / fstab виглядає так
/ Dev / sda1 / mnt / windows ntfs-3g umask = 0, nls = utf8, exec, user, auto, rw 0 0
Іноді в / etc / fstab це вже є з настроках виду:
/ Dev / sda1 / mnt / windows ntfs-3g umask = 0, nls = ru-RU.UTF-8 0 0
При такому записі все нормально, крім одного - файли і каталоги з російськими іменами не відображалися, как-будто їх не було зовсім. Щоб це виправити, можна спробувати змінити на:
/ Dev / sda1 / mnt / windows ntfs-3g exec, user, auto, rw 0 0
Тобто монтуємо розділ / dev / sda1 типу ntfs-3g в точку монтування / mnt / windows Після цього розділ NTFS в Linux буде доступний.
Отмонтірованіе по команді umount / mnt / windows
Як примонтировать CD / DVD диск в Linux
Все простіше - швидше за все, це вже зроблено у вашому дистрибутиві. Проте, привожу це тут для прикладу.
Одноразове монтування CD / DVD
Тимчасове, одноразове монтування, наприклад, DVD-диска з даними в Linux, виглядає так:
$ Sudo mount -t iso9660 / dev / XX / mnt / YY
або
# Mount -t iso9660 / dev / XX / mnt / YY
Приклад: монтування DVD-диска з даними виглядає так
$ Sudo mount -t iso9660 / dev / cdrom / mnt / dvd
Тобто монтуємо розділ / dev / cdrom типу iso9660 в точку монтування / mnt / dvd
Постійне монтування CD / DVD
Якщо потрібно постійно звертатися до цих розділів, правимо / etc / fstab додаючи рядок:
/ Dev / XX / mnt / YY iso9660 user, ro 0 0
Приклад: оптичний диск в / etc / fstab виглядає так
/ Dev / cdrom / mnt / cdrom iso9660 user, ro 0 0
Тобто монтуємо розділ / dev / cdrom типу iso9660 в точку монтування / mnt / cdrom Після цього оптичний диск в Linux буде доступний. Отмонтірованіе по команді umount / mnt / cdrom
Для монтування ISO-образу в командному рядку даємо команду:
$ Sudo mount -t iso9660 file.iso / mnt / YY -o loop
або
# Mount -t iso9660 file.iso / mnt / YY -o loop
Приклад: монтування DVD-диска з даними виглядає так
$ Sudo mount -t iso9660 file.iso / mnt / dvd -o loop
Тобто монтуємо файл file.iso типу iso9660 в точку монтування / mnt / dvd на петлеве пристрій loop
Точно так само можна монтувати будь-CD / DVD образ, а також файл-образи сжатихзашіфрованнихекзотіческіх файлових систем типу SquashFS. Отмонтірованіе по команді umount / mnt / dvd
Як примонтировать розділ з файловою системою EXT2 / EXT3 / ReiserFS / XFS / JFS. в Linux
Монтування нормальних файлових систем проблем не створює. Наведу приклад лише з ext3, інші файлові системи в Linux монтуються точно так же, тільки замість ext3 підставте буквально: ext2, reiserfs, xfs, jfs в залежності від вашої файлової системи.
одноразове монтування
Тимчасове, одноразове монтування, наприклад, флешки, виглядає в командному рядку так:
$ Sudo mount -t ext3 / dev / XX / mnt / YY
або
# Mount -t ext3 / dev / XX / mnt / YY
Приклад: монтування розділу з даними виглядає так
$ Sudo mount -t ext3 / dev / sda1 / mnt / data
Тобто монтуємо розділ / dev / sda1 типу ext3 в точку монтування / mnt / data
постійне монтування
Якщо потрібно постійно звертатися до цих розділів, правимо / etc / fstab додаючи рядок:
/ Dev / XX / mnt / YY ext3 user, auto, rw 0 0
Приклад: та ж типова флешка в / etc / fstab виглядає так
/ Dev / sda1 / mnt / data ext3 user, auto, rw 0 0
Тобто монтуємо розділ / dev / sda1 типу ext3 в точку монтування / mnt / data Після цього розділ EXT3 в Linux буде доступний. Отмонтірованіе по команді umount / mnt / data
Як дізнатися тип файлової системи на диску?
Для цього є утиліта file, яка може визначити тип файлової системи, що використовується файлом. Так як в UNIX / Linux / * BSD сповідається принцип "все є файл", то розділ з файловою системою це теж файл. Так що команда file видасть нам інформацію про файлову систему дискових розділів - треба тільки вказати програмі сприймати їх як спеціальні файли.
Використовуємо опцію -s (-special-files) для видачі інформації про тип файлової системи блочного пристрою. приклад:
# File -s / dev / sda1
або
$ Sudo file -s / dev / sda1
отримуємо у відповідь:
/ Dev / sda1: ReiserFS V3.6 block size 4096 (mounted or unclean) num blocks 17920496 r5 hash
Тобто на розділі / dev / sda1 маємо файлову ReiserFS V3.6.
Або наприклад:
# File -s / dev / sda1
видасть у відповідь:
/ Dev / sda1: x86 boot sector, code offset 0x58, OEM-ID "MSWIN4.1", sectors / cluster 64, reserved sectors 126, Media descriptor 0xf8, heads 255, hidden sectors 63, sectors 284237982 (volumes> 32 MB) . FAT (32 bit), sectors / FAT 34693, reserved3 0x800000, serial number 0x287d1dfa, unlabeled
Це допоможе у визначенні того, яка файлова система (і натякне на те, які дані там лежать) на даному розділі.
Стало бути, ваш розділ тримає MC (Midnight Commander), який ви швидше за все відкрили на іншому робочому столі і просто забули про нього. Знайдіть це додаток, закрийте його і отмонтіруйте розділ знову - тепер проблема повинна бути вирішена.