/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 ответ1

2

Windows действительно поддерживает жесткие ссылки. Однако в документации по CreateHardLink все сказано:

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

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

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

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

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