Как подключить и отформатировать жесткий диск?
Что проверяют
Умеете ли вы сделать это безопасно и так, чтобы диск пережил перезагрузку. Следом обычно спрашивают, как увеличить том без остановки сервиса и что будет, если диск пропал, а запись в fstab осталась.
Как отвечать
Говорите про Linux-сервер, а не про корпус и SATA-кабель: в DevOps диск обычно подключается через API облака или Terraform. Порядок:
- найти диск:
lsblk,dmesg, стабильные имена в/dev/disk/by-id. В облаке с NVMe новый диск будет/dev/nvme1n1, а не/dev/sdb, и порядок имён между загрузками не гарантирован; - разметить: GPT через
partedилиfdisk. Под данные в облаке часто создают файловую систему на всём устройстве без разделов, так проще расширять. Если нужна гибкость, берут LVM:pvcreate,vgcreate,lvcreate; - создать ФС:
mkfs.ext4 -L dataилиmkfs.xfs. XFS можно только увеличить, ext4 уменьшается в отмонтированном виде. На ext4 под данные резерв 5% для root убирается черезtune2fs -m 0; - смонтировать:
mkdir /data,mount, проверка черезfindmntиdf -h; - закрепить: запись в
/etc/fstabпоUUIDизblkidс опциейnofail, затемsystemctl daemon-reloadиmount -aилиfindmnt --verify, чтобы поймать ошибку до перезагрузки.
Расширение после увеличения тома в облаке: growpart для раздела, затем resize2fs для ext4 или xfs_growfs по точке монтирования, без отмонтирования. Покажите, что руками это делается один раз, а дальше через Ansible (модули community.general.filesystem и ansible.posix.mount) или cloud-init.
Где спотыкаются
Пишут в fstab имя /dev/sdb1. После перезагрузки или добавления ещё одного диска имя меняется, и монтируется не тот раздел или ничего.
Не ставят nofail. Если диск отключили, система уходит в emergency mode и не загружается, а на облачной ВМ без консоли это долгое восстановление.
Запускают mkfs не глядя на устройство с данными или fsck на смонтированной файловой системе. Перед форматированием проверьте lsblk -f и wipefs, а fsck запускайте только на отмонтированном разделе.