Я пытаюсь отформатировать и смонтировать внешний 8TB как ext4, и он, кажется, не работает правильно. Диск представляет собой настольный диск расширения Seagate 8 ТБ. Номер модели STEB8000402.

Я могу создать свой раздел с помощью gdisk:

sdc               8:32   0   7.3T  0 disk
└─sdc1            8:33   0   7.3T  0 part

Но когда я создаю файловую систему, я получаю странную ошибку, которая гласит: «/dev/sdc1 не является блочным специальным устройством».

# mke2fs -t ext4 /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdc1 is not a block special device.
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
246512 inodes, 984801 blocks
49240 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1008730112
31 block groups
32768 blocks per group, 32768 fragments per group
7952 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Впоследствии, однако, при монтировании он не работает и вместо него монтирует /dev/loop0 ? Я даже не уверен, что это такое, а файловая система имеет неправильный размер.

/dev/loop0               4.0G   16M  3.7G   1% /mnt/test

Я читал, видимо, это какой-то новый тип диска с секторами не в нормальном месте? Любая помощь будет оценена.

2 ответа2

3

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

ls -l /dev/sdc1

первая буква будет b ; дополнительно

file /dev/sdc1

сказал бы block special . Если это не так, выясните, что это за объект на самом деле. Это, вероятно, не должно быть там во-первых. Обратите внимание, что при монтировании обычного файла используется петлевое устройство, это соответствует вашему случаю.

Если объект действительно является обычным файлом или символической umount , удалите его, а затем удалите (rm) или уберите (mv) с пути. Помните, что mke2fs работает с файлом, поэтому если вы уже поместили какие-либо важные данные в файловую систему, они находятся в файле, а не в разделе.

Чтобы воссоздать правильный /dev/sdc1 как блочное устройство, вызовите sudo partprobe . Это предполагает, что нет проблем с /dev/sdc и его таблицей разделов. Вы также должны снова вызвать mke2fs потому что ваш предыдущий mke2fs даже не коснулся раздела.


Вероятная причина наличия обычного файла - запись файла изображения в /dev/sdc1 без уверенности, что цель существует (обычно как блочное устройство). Такая операция на несуществующей цели создает обычный файл.

Если проблема появляется снова (как после перезагрузки, после повторного подключения внешнего диска), это означает, что что-то воссоздает файл. Это может быть из-за плохо написанного скрипта, который предполагает, что /dev/sdc1 всегда существует. Имейте в виду, что такой скрипт может перезаписать ваш реальный раздел, когда диск подключен. Надеемся, что сценария вообще нет, и вся проблема в единственном случайном сбое, как описано выше.

1

Возможно, ваше устройство уже разбито на разделы и имеет файловую систему. Возможно, вам придется сначала избавиться от всего.

Используйте fdisk на самом диске, /dev/sdc а не на разделе /dev/sdc1:

sudo fdisk -cu /dev/sdc

Если у вас есть существующие разделы, сначала удалите их, используя команду d , и, наконец, w чтобы написать таблицу разделов и выйти.

fdisk -cu /dev/sdc и используйте n чтобы создать новый раздел с максимальным размером, и снова w .

Проверьте, что все правильно, используя fdisk -lu /dev/sdc .

Вы можете, наконец, отформатировать новый раздел:

sudo mke2fs -t ext4 /dev/sdc1

Или в качестве альтернативы:

sudo mkfs.ext4 /dev/sdc1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .