Certamente havia sistemas UNIX mais antigos para os quais era mais seguro sincronizar mais de uma vez, mas não todos em uma linha de comando como "sync; sync; sync". Em meados dos anos 80, isso se tornou destilado para:
When thou shuttest down the system, thou shalt
sync three times. No more, no less. Three shall
be the number of the syncing, and the number of
the syncing shall be three. Four times shalt thou
not sync, neither sync twice, except that thou
proceedest to sync a third time...
Eu realmente não sei de onde vieram os três tempos, exceto talvez que foi divertido. Mas a palavra na rua para fazer isso duas vezes. Não como "sync; sync", mas como duas linhas separadas no shell.
Nos dias de, digamos, o V7 UNIX, o reparo do sistema de arquivos não foi muito divertido. Você tinha que fazer isso manualmente, sabendo muito sobre como o sistema de arquivos funcionava e as idiossincrasias de programas como dcheck, ncheck e icheck. fsck, se você tivesse, nem sempre era algo que você confiaria.
Isso está começando a soar como uma história de "andamos pela neve subindo a ambos os lados". Bem, não tínhamos comandos sofisticados como reinicializar ou desligar. Quando você quiser reiniciar o sistema, sincronize o sistema de arquivos com a sincronização e pressione Ctrl-P no console para interrompê-lo.
Quando o comando sync saía, o kernel tinha programado a sincronização, mas nem todos os buffers (incluindo o importantíssimo superbloco do sistema de arquivos) tinham necessariamente chegado ao disco. Por isso, foi muito fácil executar a sincronização e interromper as coisas antes que fosse seguro.
Executar a sincronização novamente foi fácil, ocupou o tempo e teve um certo apelo intuitivo sem ter que entender tudo ou lidar com instruções vagas como "contar até 10" ou algo assim.
Havia até mesmo uma seção de BUG na página man do V7 para update
também disse:
With update running, if the CPU is halted just as the sync is executed, a
file system can be damaged. This is partially due to DEC hardware that
writes zeros when NPR requests fail. A fix would be to have sync(1)
temporarily increment the system time by at least 30 seconds to trigger
the execution of update. This would give 30 seconds grace to halt the
CPU.
(que, a propósito, foi a última coisa no Volume 1 dos manuais V7)
Com o tempo, as ferramentas do sistema de arquivos e os programas para desligar e reinicializar os sistemas ficaram melhores para evitar lidar com isso. O folclore, o vodu e a magia do sistema entram nele quando o sistema se comporta misteriosamente. Sincronizar duas vezes tornava muito menos provável que você tivesse que soltar as pinças para colocar o seu sistema de arquivos de volta, então ele se tornou parte do ritual. Depois de fazer isso várias vezes, você faz isso sem pensar. Então alguém percebe e pergunta por quê. E a resposta é algo como "Sempre fiz assim. É mais seguro".
Não vou afirmar que isso é autoritativo e posso estar errado sobre alguns detalhes. Mas acho que é bem próximo da origem.