Про Windows Junction

В любой непонятной ситуации - делай бэкап!

Как уже знают читатели этого блога, у чукчи - новый компьютер. И вот аккурат 30 декабря я начал на него переезд.

К сожалению, переизбытка SSD-дисков у меня нет, поэтому C:\ старого компьютера должен был стать C:\ у нового. С перестановкой винды с нуля, а то старая что-то распухла.

Чукча умный - и сделал полный бэкап. Затем, для удобства, восстановил его в уголочке и стал наливать новую винду софтом - посматривая в старый бэкап (банально в содержимое Program Files[(x86)] на предмет "чего бы еще поставить").

А потом - взял и восстановленные из старого полного бэкапа файлы - удалил. Просто F8 в Far.

После чего - ДА!! - отвалилась часть установленного нового. Поскольку условный Q:\Recovered\Users\lexa\Application Data вел, именно, в C:\Users\lexa\AppData\Roaming и таких мест там немало.

Happy End: чукча опытный, поэтому прежде чем удалить "рабочие временные файлы, налитые из старого бэкапа", он новый C:\ опять же побэкапил. Поэтому, не считая потерянных нервных клеток, все свелось к банальному "налить бэкап обратно", минут 15 или 20. Но, гм, пока оно не восстановилось, я даже и не помнил, бэкапился ли я до удаления всего нахрен или после....

P.S. А восстановил бы временный бэкап на сеть, а не на локальный диск - и не узнал бы о такой особенности.

P.P.S. Имею сказать, что симлинки (junction) в винде сделаны избыточно хорошо. С юниксовыми такой проблемы, понятно, нет и невозможна она.

Comments

путешественник по граблям ;)

Бэкапы - спасают!

"Спасутся те, кто в наличии бэкапов не нуждается" (кому не было нужды откатываться, при наличии бэкапов и их тестовых накатах).

Дочитав до фразы:
"поэтому прежде чем удалить ...., он новый C:\ опять же побэкапил."
пришла мысль: "уровень бога"

После фразы: "пока оно не восстановилось, я даже и не помнил, бэкапился ли я... "
отлегло: "нет, все-таки человек..."

У меня, на самом деле, был промежуточный бэкап еще, вчерашний. Винда + некий минимум программ.

Акронис бэкапит хорошо, места на NAS навалом, поэтому я кнопкой "сохраниться" пользуюсь часто (не говоря о том, что в штатном режиме оно просто раз в сутки сбэкапится, а рабочие файлы - раз в час)

Первый "недокументированный" закон сисадмина: не накатывать апдейты в ночь с воскресенья на понедельник.

Порадовать себя новыми железками на праздник - это замечательно!
Но можно было потерпеть: просто погонять/понасиловать железо чем нибудь безопасным... Праздники же!

Этот этап, погонять-понасиловать, был пройден до.

Были когда-то "10 правил сисадмина" (не могу найти уже лет 10).
Одно из них гласило "не ругайте предыдущего сисадмина".
Но в них не было "не мигрируйте на новое железо в праздники".

Давным давно для "супер крутой" видеокарты была официальная демка с летающей феей-бабочкой (очень красиво!)...
... а потом выложили ту же демку, но с полностью обнажённой феей.
... но с крыльями. :-D
Вот подобным "тестированием" и можно заниматься перед и на праздниках - Ваша голова и головы членов вашей семьи, равно как и головы ваших друзей, заняты совсем не серьёзными мыслями (вернее, они вытесняются "подсознательным").
Отсюда и правило. ;-)

Вы наступили на стандартные/штатные/всеобщие грабли.
И это особенно актуально, когда снйчас один единственный "сосок" и для инета и для радио и для ТВ и для телефона (подозреваю, что последнее для Вас не актуально (пока ... не клюнет) )

С праздником!

Скажите, а если бы я делал все то же самое на неделю позже (или раньше) - что бы изменилось? Junction стали бы вести себя как симлинки?

напоминает фантастические рассказы, в которых прошёл миллион лет, люди уже забыли как всё работает, что но существуют догматы "никогда не устанавливать обновления в ночь с воскресенья на понедельник"

Вообще, есть масса аргументов за то, чтобы устанавливать обновления именно в пятницу вечером.

Не говоря уже про всякие онлайн кассы и прочие НДС, которые должны быть формально обновлены в 0:0 1-го января.

вот не надо про формально, я в 2004 новый год на работе встречал, потому что было изменение НДС и отмена НсП. и реально в 00:00 апдейтил биллинг :-)

В этом (уже в прошлом) году выпустили специальное разъяснение, что кассы могут печатать 18% еще три месяца или что-то в этом духе (но считать надо уже 20).

А вообще, конечно, наука тем, кто 18% в код забил (или единой константой, но все едино забил), поскольку у налога вообще и у ставки в частности есть период действия.

Интересно, кстати, как тарифицируется звонок, который начался при старом НДС, а закончился при новом....

Ну, тогда налоги лежали в базе и формально у них были сроки действия, но в полночь я перезапускал оценку разговоров и апдейтил базу.

Что касается тарификации звонка, то тогда(не знаю как сейчас) звонок тарифицировался по времени и по месту начала разговора, т.е. если абонент начал разговаривать за 5 секунд до наступления выходных, или начал разговор в движении и перемещается между тарифными зонами, то все условия считались на момент начала звонка. при тарификации в реальном времени может уже всё не так, возможно даже, что изменения НДС учитываются заранее и биллингистам не надо выходить не работу по ночам :-)

> Junction стали бы вести себя как симлинки?

сейчас от М$ можно всего ожидать... rollout какой- нибудь патч и все...

Z / V

ну да, или яндекс.диск обновился бы и снёс винды нахуй

Я правильно понял что удаляя бекап, удалились файлы из нового C:?

Именно. Потому что junction (+, возможно, Far) работают именно так.

Я вот Junctions иногда использую и с таким не сталкивался.
1) Создал папку test
2) Создал в ней junction другой папки
Удаляя папку test в Total Commander 9.12 \ Far 3.0.5300 другая папка не удаляется.

Может нужен фар старый, а может какой то специфичный кейс.

Far - новый, ну то есть последний stable build

Возможно, mklink бывает разный, там же несколько вариантов: https://docs.microsoft.com/en-us/windows-server/administration/windows-c...

Везде так работает. Точно также натыкался, чуть не поседел, когда удалил таким образом важные данные, потом "разседел" обратно, вспомнив, что каждую ночь бэкап делался уже много месяцев.
Вообще практика делать (даже случайно и машинально) бэкапы перед большими удалениями чего-либо - крайне рулит.

В юниксе симлинки так не работают!

"везде" - я про far и mklink, например.

может Far старый? в новых он вроде бы уже удаляет сами ссылки, а не содежимое каталогов куда ссылка...

Последний stable build

Да, натыкался я на такие грабли с Far'ом, например, при очередном обновлении десятки, когда она старую систему и старый пользовательский каталог складывает в отдельные папочки, которые в какой-то момент хочется грохнуть. Теперь родным disk cleanup'ом такое чищу.

Источник проблем понятен - перед рекурсивным удалением снизу вверх стоило бы пройти по дереву сверху вниз, грохая линки.