Как сделать Windows 7 полностью чувствительной к регистру файловой системы?
Я хочу сделать Windows 7 чувствительной к регистру, когда она читает / записывает что-либо на жесткий диск (диск C или любой другой диск NTFS).
Я нашел видео через Google, который говорит, чтобы изменить раздел реестра
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath
до значения 1 ( источник).
Я также нашел пункт поддержки Windows, который говорит что-то об изменении ключа реестра
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
это заставляет меня предположить, что установка значения 0 сделает Windows чувствительной к регистру файловых систем NTFS ( источник).
У меня есть чувство, что второе решение - это ответ, но я не уверен, и я не хочу пробовать это, не будучи уверенным.
Кто-нибудь знает наверняка, как правильно сделать Windows 7 чувствительной к регистру при чтении / записи на диск C (и любой другой диск NTFS)?
6 ответов
Вы можете установить HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
значение реестра для 0
как предложили другие авторы. Создайте файл с именем add.reg
со следующим содержимым и запустите его.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000
Затем используйте Cygwin для работы с именами файлов с учетом регистра.
Для этого необходимо смонтировать файловые системы NTFS с posix=1
вариант в вашем /etc/fstab
, как предполагает эта статья. Вот фрагмент из моего fstab
:
none /cygdrive cygdrive binary,posix=1,user 0 0
C: /cygdrive/c ntfs binary,posix=1,user,auto 0 0
C:/Users /home ntfs binary,posix=1,user,auto 0 0
Как только вышеперечисленное будет выполнено, вы сможете работать с именами файлов с учетом регистра, используя bash
, mc
, git
и т.п.
Все эти настройки, которые вы можете найти в Интернете, предназначены для NFS, а не для NTFS (обратите внимание на разницу)!
NFS (сетевая файловая система) - это сетевой протокол.
Таким образом, изменение ключа реестра HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
НЕ ИЗМЕНИТЕ ничего, что вы хотите.
NTFS чувствительна к регистру, но Windows API НЕ, он запоминает только регистр имени файла. Это означает, что, несмотря на ваш файл отображается как AbC.TXT
это все еще доступно abc.txt
а также aBc.TxT
, Это ограничение Windows, а не NTFS.
Другой HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath
в основном отключает нормализацию устаревших имен файлов 8.3, используемых DOS (все они заглавными буквами). Когда он включен (по умолчанию) ABC.TXT
будет отображаться как Abc.txt
, но все же быть доступным для всех других вариантов.
Чтобы быть более точным:
На самом деле это зависит от программного обеспечения, которое обращается к ФС.
Если он использует WIN32 API (что делает 99,9% программного обеспечения), он не будет учитывать регистр, что бы вы ни делали. Все встроенное программное обеспечение в Windows (например, Explorer, командная строка, Internet Explorer и т. Д.) И все потребительские программы используют WIN32 и всегда чувствительны к регистру.
Служба NFS, Java и некоторые другие являются POSIX, и они будут подчиняться "нечувствительному к регистру" параметру реестра. Однако отключение этой опции может привести к большим проблемам, поскольку это программное обеспечение может создавать файлы, недоступные из самой Windows и других программ Win32.
Чтобы фактически создать 2 файла с одним и тем же именем, но с другим регистром в одном и том же каталоге, вам необходимо установить Unix Services 3.5, но это работает только в 32-битной Windows. Затем вам нужно запустить "C Shell" для создания файлов. Вы не можете создавать файлы через проводник. После того, как созданный, проводник не играет хорошо с файлами. Если вы идете переименовать второй, курсор переходит на первый. Кроме того, большинство приложений могут открывать только один из файлов, так как они ожидают нечувствительную к регистру файловую систему. Если вы используете 64-битную версию, установите Cygwin и измените его на регистр.
Я пытался эмулировать чувствительную к регистру файловую систему Linux для целей отладки во время разработки. Кажется, лучший подход - использовать VMWare с экземпляром Ubuntu для разработки.
Что Microsoft должна сказать о NTFS и изменении чувствительности к регистру.
Похоже, вам не нужно менять ядро, чтобы разрешить поиск с учетом регистра в сети.
http://technet.microsoft.com/en-us/library/cc783185(WS.10).aspx
,
Настройка чувствительности к регистру для имен файлов и папок
Применяется к: Windows Server 2003 R2
Чтобы настроить чувствительность к регистру имен файлов и папок с помощью интерфейса Windows Откройте "Службы Microsoft для сетевой файловой системы": нажмите "Пуск", выберите "Программы", "Администрирование", а затем нажмите "Службы Microsoft для сетевой файловой системы".
При необходимости подключитесь к компьютеру, которым хотите управлять.
Щелкните правой кнопкой мыши Сервер для NFS и выберите Свойства.
Нажмите вкладку Обработка имени файла.
Выполните одно из следующих действий:
Чтобы включить поиск файлов и каталогов с учетом регистра, установите флажок Включить поиск с учетом регистра.
Чтобы отключить поиск файлов и каталогов с учетом регистра, снимите флажок Включить поиск с учетом регистра.
Нажмите Применить.
Важно! Эти изменения не вступят в силу до перезапуска сервера для NFS. Сведения о том, как остановить и запустить сервер для NFS, см. В разделе Запуск и остановка сервера для NFS. Также необходимо отключить нечувствительность к регистру ядра Windows, чтобы сервер для NFS поддерживал имена файлов с учетом регистра. Вы можете отключить нечувствительность к регистру ядра Windows, очистив следующий раздел реестра в 0: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel DWORD "obcaseinsensitive"
Чтобы настроить чувствительность к регистру имен файлов и папок с помощью командной строки Откройте командную строку.
Чтобы включить чувствительность к регистру, введите следующее:
nfsadmin server [ComputerName] config casesensitivelookups = yes
Чтобы отключить чувствительность к регистру и при необходимости указать регистр имен файлов, возвращаемых сервером для NFS, введите в командной строке следующую команду:
nfsadmin server [ComputerName] config casesensitivelookups = no [ntfscase = {upper | ниже | сохранение}]
Аргумент> Имя компьютера = имя компьютера, который вы хотите настроить.
Важно! Эти изменения не вступят в силу до перезапуска сервера для NFS. Сведения о том, как остановить и запустить сервер для NFS, см. В разделе Запуск и остановка сервера для NFS.
Примечание. Параметр ntfscase устанавливает чувствительность к регистру файловой системы NTFS. Чувствительность к регистру по умолчанию - сохранить (сохранить регистр). Чтобы просмотреть полный синтаксис этой команды, введите в командной строке: nfsadmin server /?
,
Я думаю, это то, что вы ищете:
http://www.chilkatsoft.com/p/p_454.asp
На этой странице рекомендуется настройка HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
до 0, чтобы сделать его чувствительным к регистру. Я думаю, что вы уже нашли это, и это похоже на стандартный способ сделать это (даже Microsoft KB, которую вы нашли, предлагает это).
Похоже, вы должны изменить настройки ядра. Остерегайтесь обновлений, хотя.
РЕДАКТИРОВАТЬ: Остерегайтесь, хотя, некоторые программы могут зависеть от нечувствительности к регистру.
РЕДАКТИРОВАТЬ: Возможно, вы могли бы использовать раздел UDF. Эта файловая система чувствительна к регистру, и я думаю, что она работает как в Windows, так и в Linux.
Microsoft заявляет;
В NTFS имена сохраняют регистр, но не чувствительны к регистру.
NTFS не делает различий в именах файлов в зависимости от регистра.
Разрешение чувствительности к регистру в Windows позволит вредоносным программам создавать файлы, к которым пользователь не сможет получить доступ или удалить их, поэтому это недопустимо по уважительной причине.
В любом случае, я совершенно уверен, что если вам удастся настроить NTFS с учетом регистра, Windows будет аварийно завершать работу, и переустановка будет единственным решением.