Я пытаюсь установить Arch Linux с помощью btrfs
файловой системы. Я нахожусь в начале процесса установки, подготавливая свой диск, и у меня возникла проблема.
Сначала я начинаю очищать все записи GTP и MBR от предыдущих попыток установки, используя:
gdisk /dev/sda
Затем я перехожу в экспертный режим с помощью x
команды и затем использую ее z
для удаления GTP и/или MBR.
Затем я fdisk
создаю новый раздел, используя все пространство на диске — а это 119 ГБ.
После создания раздела и его записи я пытаюсь создать файловую систему с помощью:
mkfs.btrfs /dev/sda1
Но я получаю ошибку:
/dev/sda1 appears to contain an existing filesystem (btrfs)
Как это так? Я всего лишь создал раздел, так как же btrfs может уже существовать как тип файловой системы?
решение1
Когда вы создаете раздел, он содержит все, что там было раньше. Например, если вы удалите раздел, содержащий файловую систему, и заново создадите раздел в том же самом месте, не записывая в это пространство между этим, то вы получите файловую систему, которая была там раньше, нетронутой. Если новый раздел начинается в том же месте, что и старый, но больше, вы можете продолжать использовать файловую систему или (если файловая система это поддерживает) расширить ее, чтобы заполнить дополнительное пространство. Если новый раздел меньше, вы можете продолжать использовать файловую систему — но вам нужно сжать ее до нового размера раздела перед удалением старого раздела.
Итак, вот вам файловая система, или, может быть, только начало файловой системы, оставшееся от раздела, который начинался в том же месте. Многие версии отказываются mkfs
перезаписывать то, что кажется существующей файловой системой, потому что это часто является признаком того, что вы указали неправильный раздел, и ошибка может быть катастрофической. Если вы хотите перезаписать существующую файловую систему, вам нужно сначала стереть ее часть, достаточно, чтобы сделать ее неузнаваемой. Linux поставляется сwipefs
утилита для этого.
wipefs /dev/sda1
Обнуление достаточного количества байтов (скажем, пары мегабайт) в начале раздела, как правило, приводит к тому же эффекту.
решение2
Используя dd, мы можем стереть таблицу разделов. Я помню, как dd работал успешно, но не с функцией gdisk zero. (Убедитесь, что у вас есть резервная копия данных).
# dd if=/dev/zero of=/dev/sda bs=512 count=1024