"невозможно создать жесткую ссылку X на Y: операция не разрешена" на диске ext2 из cygwin cp -al

/cygdrive/d/ - это жесткий диск USB, отформатированный как ext2 и смонтированный с помощью ext2fsd.

Когда я пытаюсь cp -al /cygdrive/d/X /cygdrive/d/Y где X - файл, я получаю ошибку в заголовке.

Вещи, которые я пробовал / проверено

я сделал chmod -R 777 /cygdrive/d но я все равно получаю тот же результат.

Я работаю как локальный администратор, который является владельцем / cygdrive / d.

X это файл, а не каталог.

Windows Server 2012 R2 работает с Cygwin64, действующей на сегодняшний день.

Это ext2, потому что я могу, например, touch /cygdrive/d/filename_with_a_colon:in_it и это работает, и я могу видеть это с ls, Не говоря уже о том, что так сказано в ext2fsd и диспетчере дисков Windows.

По иронии судьбы тот же синтаксис на диске NTFS работает нормально и создает жесткую ссылку NTFS.

Я также попытался переформатировать диск как ext3, с теми же результатами. Я полагал, что ext2 более вероятно будет полностью поддерживаться из-за того, что он старше чем ext3/4, но я думаю, что это не имеет значения.

Вопрос

Как я могу создать простые жесткие ссылки ext2 с помощью Cygwin?

1 ответ

Решение

Windows действительно поддерживает жесткие ссылки. Тем не менее, документация по CreateHardLink говорит все это:

Эта функция поддерживается только в файловой системе NTFS

Это ограничение, вероятно, жестко закодировано. Поскольку ext2fsd явно не NTFS, Windows откажется создавать жесткие ссылки на него.

Cygwin обеспечивает совместимость API POSIX (своего рода) поверх API Windows. Это означает, что это в конечном итоге также вызывает CreateHardLink и подлежит таким же ограничениям, как mklink и другое программное обеспечение Windows.

Многие инструменты пакета e2fsprogs (например, mke2fs, e2fsck, resize2fs,...) работать непосредственно на диске, не полагаясь на драйверы файловой системы. Вот почему файловая система должна быть размонтирована, прежде чем использовать их для изменения содержимого. По этой же причине они могут работать без Windows (изначально) и вообще не иметь доступа к ext2/3/4.

Другие вопросы по тегам