Суть статьи -- правильно поправить fstab и ещё важнее, перепроверить, точно ли жесткий диск подготовлен правильно
Недавно мне удалось купить жесткий диск на 2 Tb, который тут же занял свое место в сервере и начал свою работу.
Я не буду в этот раз описывать теорию, ограничусь практикой, что я сделал, чтобы это заработало.
К сожалению, Linux не даёт такой же простоты работы с новыми HDD в системе, каким бы графическим он не был, но настолько же понятного GUI как в Windows тут нет. Да ещё и с правами доступа очередная свистопляска. Если в Windows вы сами себе хозяин, то в Linux вам навязывают непривилегированного пользователя. Да так, что даже флешку без sudo вы не можете отформатировать. Да, это бесит жутко даже меня, пользователя с 2004 года.
Но сервер есть сервер.
Вставляем жесткий диск, затем выполняем перечень команд.
# fdisk -l
Копируем в отдельный текстовый файл /dev/sd* которому принадлежит жесткий диск.
# blkid
Копируем UUID нового hdd в вышеуказанный файл затем выполняем команду:
# mke2fs -t ext4 -L D /dev/sd*1
где D -- метка раздела (Как в windows диск D)
/dev/sd*1 -- номер раздела, на диске sd*
поскольку для 2 Tb не требуется организации GPT, я оставил то что было по умолчанию: MBR.
Далее редактируем /etc/fstab
добавляем следующую строку:
UUID /mnt/D ext4 defaults 0 0
В моем файле fstab видно, что подключаемая файловая система ntfs-3g. Наверное понятно, что этот диск перекочевал из пк Windows. Поэтому файловая система басурманская.
У меня есть привычка укорачивать пути, поэтому я размещаю точки подключения дисков в корне файловой системы. Для меня конструкции /mnt/$mountpoint$ выглядят дикостью.
Поэтому точка монтирования /D
#mkdir /D
Сразу пробуем:
#mount /dev/sd*1 /D
если сообщений об ошибках не выдало, то выходим их режима # в режим $ проверяем монтирование:
$mount | grep /mnt/D
без параметров mount выдаст список всех подключенных файловых систем.
Подключитесь к серверу через консоль KVM или подключите к нему монитор, если есть такая возможность.
#reboot
Если ошибок не было, то сервер загрузится нормально.
Зайдите по ssh на сервер.
Снова проверьте:
$mount | grep /mnt/D
/dev/sdb1 on /D type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
#cat > /mnt/D/test.txt
Ваш текст (после окончания ввода нажимте ctrl+D).
Если ошибок нет, то:
# ls /mnt/D
test.txt
Всё работает.
Поскольку далее всем диском распоряжается apache2 с его www-data, то у меня созданы для каждого виртуального хоста отдельные директории.
Принципиально, нет разницы, если владелец www-data и права на каталоги 775 или моё предпочтение 757. root в любом случае имеет наивысшие привилегии и может удалить всё.
Можно такой вариант провернуть:
#chown -R www-data:www-data /D
и в fstab внести информацию о монтировании диска от этого пользователя и группы, а надо ли?
В этом посте я описал опыт настройки жесткого диска в Debian и взял информацию не с потолка, однако, источники, откуда я брал примеры у меня больше не открываются. Но в любом случае 90% текста переработано
Руководство по fstab: man fstab