Войти

Показать полную графическую версию : [решено] [Windows 8][Symbolic link] и системные каталоги [Users][Program Files][Program Data]


Krokodile
09-02-2013, 19:39
Что и зачем?
С целью облегчения раздела с виндой, фиксации его размера, возможности восстановления настроек ПО(Program Data, AppData) и просто ради интереса решил перенести системные каталоги на отдельный раздел и выставить на них ссылки NTFS.

В переносе участвовали:
1. Windows 8 x64(оригинал, лицензия)
2. 4 каталога: [Program Files][Program Files (x86)][Program Data]
3. 2 раздела на харде: C:\ - раздел с windows; D:\ - раздел для хранения указанных каталогов

Как?
1. Установка Windows
2. Регистрация уч.записи
3. Загрузка консоли с установочного диска
4. Перенос каталогов и установка junction-ссылок с помощью far manager
5. Прака реестра (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\)

Результат
В результате получил рабочую систему в которой, как казалось, достиг всех целей.
http://i51.fastpic.ru/big/2013/0209/84/44f428d2bfcba14098992399a71fee84.jpg
[U]Но со временем заметил, что размер свободного места на диске C:\ все равно убывает.
Посмотрел свойства каталогов на C:\ и выяснилось, что винда дублирует размер целевых каталогов и применяет его к ссылкам. Раздел D:\ имеет больший объем, чем C:\ и что будет, когда C:\ якобы забьется я не знаю, да и выяснять не хочется. Попробовал из под windows тем же FAR Manager'ом создать теже junction-ссылки на теже каталоги, реакция была адекватная - размер ссылки считался нулевым, размер целевого каталога не отображался на диск.

Вопрос
Как правильно создать ссылки, чтобы их размер был нулевым для windows?

P.S.: Когда создавал ссылки из под windows, пробовал и junction и symbolic - все работало правильно. Ниже скрины описанной проблемы.
http://i52.fastpic.ru/big/2013/0209/44/143e887e82a59ccb901bbbc1b1e31644.jpg http://i52.fastpic.ru/big/2013/0209/eb/f0bcc507509fb758a827cddde9d5baeb.jpg
Скрин слева - проблемные ссылки, справа - свежесозданные.

Vadikan
09-02-2013, 20:43
Krokodile, вы зря тратите время, на мой взгляд :)

С целью облегчения раздела с виндой »
Это лишь следствие 6 ошибок людей с маленьким системным разделом (http://www.outsidethebox.ms/13005/)

возможности восстановления настроек ПО(Program Data, AppData) »
Для этого есть масса других способов резервного копирования системы и файлов (http://www.outsidethebox.ms/tag/backup/), да и переустановка поверх (http://www.outsidethebox.ms/9962/) с этим прекрасно справляется.

Как правильно создать ссылки, чтобы их размер был нулевым для windows? »
А он и так нулевой. Символическая ссылка - это просто ярлык, а жесткая - не более чем отображение одного файла в разных местах. Но проводник этого не понимает. Читайте также ссылки в шапке темы [решено] Соединения, символические и жесткие ссылки (http://forum.oszone.net/thread-209013.html)

Krokodile
09-02-2013, 22:09
А он и так нулевой. Символическая ссылка - это просто ярлык, а жесткая - не более чем отображение одного файла в разных местах. Но проводник этого не понимает. »
ну вот если бы оно так и было и ссылки на диске C:\ весили бы как ссылки, а не как каталоги, то я бы тут не писал.

Vadikan
09-02-2013, 22:14
Krokodile, как вы измеряете их вес? Проводником? Ню-ню.

Krokodile
10-02-2013, 00:08
да, банально пользоваться проводником. Но количество свободного места постоянно убывает, ведь устанавливаю свое ПО на только что установленную ОС.

И вообще - когда это проводник потерял свой авторитет? Что, не достоверную информацию отображает? Ну Акронис(запущенный из ОС) отображает тоже самое. В конце концов винда ему доверяет и когда этот же проводник определит, что на диске С:\ 500Мб свободно - система предпримет попытку его отчистить и выкроит для себя еще 200Мб.

Iska
10-02-2013, 00:23
Krokodile, измеряйте размер каталогов тем же Far Manager'ом (F3 на имени папки), отключая по нужде подсчёт содержимого ссылок:
╔══════════════ Системные параметры ══════════════╗
║ [x] Снимать атрибут R/O c CD файлов ║
║ [x] Удалять в Корзину ║
║ [x] Удалять символические ссылки ║
║ [x] Использовать системную функцию копирования ║
║ [x] Копировать открытые для записи файлы ║
║ [x] Сканировать символические ссылки ║
║ [ ] Создавать папки заглавными буквами ║

╟─────────────────────────────────────────────────╢
║ { OK } [ Отмена ] ║
╚═════════════════════════════════════════════════╝

В конце концов винда ему доверяет… »
Вы путаете. Проводник — всего лишь оболочка.

и когда этот же проводник определит, что на диске С:\ 500Мб свободно - система предпримет попытку его отчистить и выкроит для себя еще 200Мб. »
Проводник в этом не участвует. Ни разу. Читайте:
GetDiskFreeSpace function (Windows) (http://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364935(v=vs.85).aspx)
GetDiskFreeSpaceEx function (Windows) (http://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364937(v=vs.85).aspx)
Symbolic Link Effects on File Systems Functions (Windows) (http://msdn.microsoft.com/ru-ru/library/windows/desktop/aa365682(v=vs.85).aspx)

Krokodile
10-02-2013, 01:14
Iska, по поводу последнего сообщения - спасибо, буду просвещаться.
Vadikan, извиняюсь, что навел смуту.. Но проводник показывал правильный размер. Пока мы тут переписывались, я вернул папки на С:\ и места на диске стало еще меньше! Короче тема себя исчерпала))

По поводу такого использования разделов. Я решил оставить все как есть(с ссылками, лишь заменил их на symbolic), т.к. пришлось бы редактировать кучу записей в реестре(1), да и система не жалуется(папки перемещены с сохранением прав)(2) + бэкап раздела C:\ будет меньше, чем если бы папки были там(3). Возможно уменьшение места на C:\ всеже остановится и я получу хоть какой то толк от этого эксперимента.




© OSzone.net 2001-2012