{
  "created": "2019-06-02T15:34:01Z",
  "hierarchy": [
    {
      "name": "ROOT",
      "type": "folder",
      "uri": "/ROOT"
    },
    {
      "name": "Corrupted Time Machine Fix",
      "type": "article",
      "uri": "Corrupted_Time_Machine_Fix"
    }
  ],
  "html": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"/><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/><meta name=\"name\" content=\"Nikhil's Personal Wiki\"/><meta name=\"description\" content=\"Corrupted Time Machine Fix – Nikhil's Personal Wiki\"/><meta name=\"author\" content=\"Nikhil Anand\"/><meta name=\"theme-color\" content=\"#ffe9a00\"/><meta property=\"og:title\" content=\"Corrupted Time Machine Fix – Nikhil's Personal Wiki\"/><meta property=\"og:description\" content=\"Corrupted Time Machine Fix – Nikhil's Personal Wiki\"/><meta property=\"og:type\" content=\"website\"/><meta property=\"og:image\" content=\"/img/logo512.png\"/><meta property=\"og:site_name\" content=\"Nikhil's Personal Wiki\"/><link rel=\"og:image\" href=\"/img/logo512.png\"/><link rel=\"icon\" href=\"/img/favicon.png\"/><link rel=\"apple-touch-icon\" href=\"/img/logo192.png\"/><link rel=\"stylesheet\" href=\"/css/styles.css\"/><title>Corrupted Time Machine Fix – Nikhil's Personal Wiki</title><script defer data-domain=\"wiki.nikhil.io\" src=\"https://plausible.io/js/plausible.js\"></script></head><body><noscript>👉 A few things won't work if you have JavaScript disabled.</noscript><div class=\"container article\"><header><nav><ul><li><a href=\"/archive\" class title=\"Archive\"><span>Archive</span></a></li><li><a href=\"/Home\" class title=\"Home\"><span>Home</span></a></li><li><a href=\"/random\" class title=\"See a random article\"><span>Random</span></a></li><li><a href=\"/Corrupted_Time_Machine_Fix/raw.txt\" title=\"View Source\"><span>Raw</span></a></li><li><a href=\"/Corrupted_Time_Machine_Fix/revisions\" class title=\"View revisions\"><span>Revisions</span></a></li><li><a href=\"/Corrupted_Time_Machine_Fix/index.json\" title=\"View JSON Object\"><span>JSON</span></a></li></ul></nav></header><main><article><article-hierarchy><ul><li><a data-entity-type=\"folder\" href=\"/ROOT\" title=\"ROOT\">Root</a></li><li><a data-entity-type=\"article\" href=\"/Corrupted_Time_Machine_Fix\" title=\"Corrupted Time Machine Fix\">Corrupted Time Machine Fix</a></li></ul></article-hierarchy><header><h1>Corrupted Time Machine Fix</h1></header><article-content><p>Didn&rsquo;t work for me when backing up to a TM volume on FreeNAS, but oh well.</p>\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"line\"><span class=\"cl\"><span class=\"cp\">#! /usr/bin/env bash\n</span></span></span><span class=\"line\"><span class=\"cl\"><span class=\"cp\"></span><span class=\"c1\">#</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Source:</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># https://www.reddit.com/r/freenas/comments/akqd2d/time_machine_must_create_a_new_backup_for_you/</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set</span> -euo pipefail\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">IFS</span><span class=\"o\">=</span><span class=\"s1\">$&#39;\\n\\t&#39;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"k\">if</span> <span class=\"o\">[[</span> <span class=\"k\">$(</span>whoami<span class=\"k\">)</span> !<span class=\"o\">=</span> <span class=\"s1\">&#39;root&#39;</span> <span class=\"o\">]]</span><span class=\"p\">;</span> <span class=\"k\">then</span>\n</span></span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">exit</span> <span class=\"m\">1</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"k\">fi</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">read</span> -r -p <span class=\"s1\">&#39;Enter Time Machine Hostname: &#39;</span> HOSTNAME\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">read</span> -r -p <span class=\"s1\">&#39;Enter Share: &#39;</span> SHARE\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">read</span> -r -p <span class=\"s1\">&#39;Enter Username: &#39;</span> USERNAME\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">read</span> -r -s -p <span class=\"s1\">&#39;Enter Password: &#39;</span> PASSWORD\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">TM_NAME</span><span class=\"o\">=</span><span class=\"k\">$(</span>hostname -s <span class=\"p\">|</span> sed -e <span class=\"s1\">&#39;s/-/ /g&#39;</span><span class=\"k\">)</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">MOUNT</span><span class=\"o\">=</span>/Volumes/TimeMachine\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">SPARSEBUNDLE</span><span class=\"o\">=</span><span class=\"nv\">$MOUNT</span>/<span class=\"nv\">$TM_NAME</span>.sparsebundle\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">PLIST</span><span class=\"o\">=</span><span class=\"nv\">$SPARSEBUNDLE</span>/com.apple.TimeMachine.MachineID.plist\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Disabling Time Machine&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">tmutil disable\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Mounting volume&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">mkdir -p <span class=\"nv\">$MOUNT</span>\n</span></span><span class=\"line\"><span class=\"cl\">mount_afp <span class=\"s2\">&#34;afp://</span><span class=\"nv\">$USERNAME</span><span class=\"s2\">:</span><span class=\"nv\">$PASSWORD</span><span class=\"s2\">@</span><span class=\"nv\">$HOSTNAME</span><span class=\"s2\">/</span><span class=\"nv\">$SHARE</span><span class=\"s2\">&#34;</span> <span class=\"s2\">&#34;</span><span class=\"nv\">$MOUNT</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># If mounting via SMB</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># mount_smbfs &#34;smb://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE&#34; &#34;$MOUNT&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Changing file and folder flags&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">chflags -R nouchg <span class=\"s2\">&#34;</span><span class=\"nv\">$SPARSEBUNDLE</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Attaching sparse bundle&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">DISK</span><span class=\"o\">=</span><span class=\"s2\">&#34;</span><span class=\"k\">$(</span>hdiutil attach -nomount -readwrite -noverify -noautofsck <span class=\"s2\">&#34;</span><span class=\"si\">${</span><span class=\"nv\">SPARSEBUNDLE</span><span class=\"si\">}</span><span class=\"s2\">&#34;</span> <span class=\"p\">|</span> grep Apple_HFS <span class=\"p\">|</span> cut -f <span class=\"m\">1</span> <span class=\"p\">|</span> sed -e <span class=\"s1\">&#39;s/^[[:space:]]*//&#39;</span> -e <span class=\"s1\">&#39;s/[[:space:]]*$//&#39;</span><span class=\"k\">)</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;</span><span class=\"nv\">$DISK</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">read</span> -r -p <span class=\"s2\">&#34;Press enter to continue&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Repairing volume&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#diskutil repairVolume $DISK</span>\n</span></span><span class=\"line\"><span class=\"cl\">fsck_hfs -fry <span class=\"nv\">$DISK</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Fixing Properties&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">cp <span class=\"s2\">&#34;</span><span class=\"nv\">$PLIST</span><span class=\"s2\">&#34;</span> <span class=\"s2\">&#34;</span><span class=\"nv\">$PLIST</span><span class=\"s2\">.backup&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">sed -e <span class=\"s1\">&#39;/RecoveryBackupDeclinedDate/{N;d;}&#39;</span>   <span class=\"se\">\\\n</span></span></span><span class=\"line\"><span class=\"cl\"><span class=\"se\"></span>-e <span class=\"s1\">&#39;/VerificationState/{n;s/2/0/;}&#39;</span>       <span class=\"se\">\\\n</span></span></span><span class=\"line\"><span class=\"cl\"><span class=\"se\"></span><span class=\"s2\">&#34;</span><span class=\"nv\">$PLIST</span><span class=\"s2\">.backup&#34;</span> <span class=\"se\">\\\n</span></span></span><span class=\"line\"><span class=\"cl\"><span class=\"se\"></span>&gt; <span class=\"s2\">&#34;</span><span class=\"nv\">$PLIST</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Unmounting volumes&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">hdiutil detach <span class=\"s2\">&#34;</span><span class=\"nv\">$DISK</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">umount <span class=\"s2\">&#34;</span><span class=\"nv\">$MOUNT</span><span class=\"s2\">&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Enabling Time Machine&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">tmutil <span class=\"nb\">enable</span>\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo</span> <span class=\"s2\">&#34;Starting backup&#34;</span>\n</span></span><span class=\"line\"><span class=\"cl\">tmutil startbackup\n</span></span><span class=\"line\"><span class=\"cl\">\n</span></span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">exit</span> <span class=\"m\">0</span>\n</span></span></code></pre></article-content></article></main><footer><p></p><ul><li>1,609 bytes</li><li>Created on Sunday, 2 June 2019 at 15:34 UTC</li><li>Modified on Tuesday, 13 January 2026 at 18:47 UTC</li><br/><li><a href=\"https://github.com/afreeorange/wiki.nikhil.io.articles/edit/master/Corrupted Time Machine Fix.md\" title=\"Edit this article\">Edit this article</a></li><li><a href=\"https://github.com/afreeorange/bock\" title=\"View the project that generates this wiki on Github\"><span>bock 6.3.0-alpha</span></a></li></ul></footer></div><script src=\"/js/table-sort.js\" defer></script><script type=\"text/javascript\">\n        document.body.addEventListener(\n          \"keypress\", (e) => e.key === \"f\"\n          ? window.location.assign(\"/archive\")\n          : null);\n      </script></body></html>",
  "id": "c891830c-5809-50fc-a891-68772335def2",
  "modified": "2026-01-13T18:47:28Z",
  "revisions": [
    {
      "authorEmail": "mail@nikhil.io",
      "authorName": "Nikhil Anand",
      "date": "2026-01-13T18:47:28Z",
      "id": "2436477560f26e23d00a24add1cbfeafdca4af78",
      "shortId": "24364775",
      "subject": "No compression\n",
      "content": "Didn't work for me when backing up to a TM volume on FreeNAS, but oh well.\n\n```bash\n#! /usr/bin/env bash\n#\n# Source:\n# https://www.reddit.com/r/freenas/comments/akqd2d/time_machine_must_create_a_new_backup_for_you/\n#\nset -euo pipefail\nIFS=$'\\n\\t'\n\nif [[ $(whoami) != 'root' ]]; then\n    exit 1\nfi\n\nread -r -p 'Enter Time Machine Hostname: ' HOSTNAME\nread -r -p 'Enter Share: ' SHARE\nread -r -p 'Enter Username: ' USERNAME\nread -r -s -p 'Enter Password: ' PASSWORD\n\nTM_NAME=$(hostname -s | sed -e 's/-/ /g')\nMOUNT=/Volumes/TimeMachine\nSPARSEBUNDLE=$MOUNT/$TM_NAME.sparsebundle\nPLIST=$SPARSEBUNDLE/com.apple.TimeMachine.MachineID.plist\n\necho \"Disabling Time Machine\"\ntmutil disable\n\necho \"Mounting volume\"\nmkdir -p $MOUNT\nmount_afp \"afp://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE\" \"$MOUNT\"\n\n# If mounting via SMB\n# mount_smbfs \"smb://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE\" \"$MOUNT\"\n\necho \"Changing file and folder flags\"\nchflags -R nouchg \"$SPARSEBUNDLE\"\n\necho \"Attaching sparse bundle\"\nDISK=\"$(hdiutil attach -nomount -readwrite -noverify -noautofsck \"${SPARSEBUNDLE}\" | grep Apple_HFS | cut -f 1 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')\"\necho \"$DISK\"\nread -r -p \"Press enter to continue\"\n\necho \"Repairing volume\"\n#diskutil repairVolume $DISK\nfsck_hfs -fry $DISK\n\necho \"Fixing Properties\"\ncp \"$PLIST\" \"$PLIST.backup\"\nsed -e '/RecoveryBackupDeclinedDate/{N;d;}'   \\\n-e '/VerificationState/{n;s/2/0/;}'       \\\n\"$PLIST.backup\" \\\n> \"$PLIST\"\n\necho \"Unmounting volumes\"\nhdiutil detach \"$DISK\"\numount \"$MOUNT\"\n\necho \"Enabling Time Machine\"\ntmutil enable\n\necho \"Starting backup\"\ntmutil startbackup\n\nexit 0\n```\n"
    },
    {
      "authorEmail": "mail@nikhil.io",
      "authorName": "Nikhil Anand",
      "date": "2019-06-02T15:34:01Z",
      "id": "80e0b79a9a091aca9e55c38430d22a446d38cc17",
      "shortId": "80e0b79a",
      "subject": "Create Corrupted Time Machine Fix.md\n",
      "content": "Didn't work for me when backing up to a TM volume on FreeNAS, but oh well.\n\n```bash\n#! /usr/bin/env bash\n#\n# Source:\n# https://www.reddit.com/r/freenas/comments/akqd2d/time_machine_must_create_a_new_backup_for_you/\n#\nset -euo pipefail\nIFS=$'\\n\\t'\n\nif [[ $(whoami) != 'root' ]]; then\n    exit 1\nfi\n\nread -r -p 'Enter Time Machine Hostname: ' HOSTNAME\nread -r -p 'Enter Share: ' SHARE\nread -r -p 'Enter Username: ' USERNAME\nread -r -s -p 'Enter Password: ' PASSWORD\n\nTM_NAME=$(hostname -s | sed -e 's/-/ /g')\nMOUNT=/Volumes/TimeMachine\nSPARSEBUNDLE=$MOUNT/$TM_NAME.sparsebundle\nPLIST=$SPARSEBUNDLE/com.apple.TimeMachine.MachineID.plist\n\necho \"Disabling Time Machine\"\ntmutil disable\n\necho \"Mounting volume\"\nmkdir -p $MOUNT\nmount_afp \"afp://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE\" \"$MOUNT\"\n\n# If mounting via SMB\n# mount_smbfs \"smb://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE\" \"$MOUNT\"\n\necho \"Changing file and folder flags\"\nchflags -R nouchg \"$SPARSEBUNDLE\"\n\necho \"Attaching sparse bundle\"\nDISK=\"$(hdiutil attach -nomount -readwrite -noverify -noautofsck \"${SPARSEBUNDLE}\" | grep Apple_HFS | cut -f 1 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')\"\necho \"$DISK\"\nread -r -p \"Press enter to continue\"\n\necho \"Repairing volume\"\n#diskutil repairVolume $DISK\nfsck_hfs -fry $DISK\n\necho \"Fixing Properties\"\ncp \"$PLIST\" \"$PLIST.backup\"\nsed -e '/RecoveryBackupDeclinedDate/{N;d;}'   \\\n-e '/VerificationState/{n;s/2/0/;}'       \\\n\"$PLIST.backup\" \\\n> \"$PLIST\"\n\necho \"Unmounting volumes\"\nhdiutil detach \"$DISK\"\numount \"$MOUNT\"\n\necho \"Enabling Time Machine\"\ntmutil enable\n\necho \"Starting backup\"\ntmutil startbackup\n\nexit 0\n```\n"
    }
  ],
  "sizeInBytes": 1609,
  "source": "Didn't work for me when backing up to a TM volume on FreeNAS, but oh well.\n\n```bash\n#! /usr/bin/env bash\n#\n# Source:\n# https://www.reddit.com/r/freenas/comments/akqd2d/time_machine_must_create_a_new_backup_for_you/\n#\nset -euo pipefail\nIFS=$'\\n\\t'\n\nif [[ $(whoami) != 'root' ]]; then\n    exit 1\nfi\n\nread -r -p 'Enter Time Machine Hostname: ' HOSTNAME\nread -r -p 'Enter Share: ' SHARE\nread -r -p 'Enter Username: ' USERNAME\nread -r -s -p 'Enter Password: ' PASSWORD\n\nTM_NAME=$(hostname -s | sed -e 's/-/ /g')\nMOUNT=/Volumes/TimeMachine\nSPARSEBUNDLE=$MOUNT/$TM_NAME.sparsebundle\nPLIST=$SPARSEBUNDLE/com.apple.TimeMachine.MachineID.plist\n\necho \"Disabling Time Machine\"\ntmutil disable\n\necho \"Mounting volume\"\nmkdir -p $MOUNT\nmount_afp \"afp://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE\" \"$MOUNT\"\n\n# If mounting via SMB\n# mount_smbfs \"smb://$USERNAME:$PASSWORD@$HOSTNAME/$SHARE\" \"$MOUNT\"\n\necho \"Changing file and folder flags\"\nchflags -R nouchg \"$SPARSEBUNDLE\"\n\necho \"Attaching sparse bundle\"\nDISK=\"$(hdiutil attach -nomount -readwrite -noverify -noautofsck \"${SPARSEBUNDLE}\" | grep Apple_HFS | cut -f 1 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')\"\necho \"$DISK\"\nread -r -p \"Press enter to continue\"\n\necho \"Repairing volume\"\n#diskutil repairVolume $DISK\nfsck_hfs -fry $DISK\n\necho \"Fixing Properties\"\ncp \"$PLIST\" \"$PLIST.backup\"\nsed -e '/RecoveryBackupDeclinedDate/{N;d;}'   \\\n-e '/VerificationState/{n;s/2/0/;}'       \\\n\"$PLIST.backup\" \\\n> \"$PLIST\"\n\necho \"Unmounting volumes\"\nhdiutil detach \"$DISK\"\numount \"$MOUNT\"\n\necho \"Enabling Time Machine\"\ntmutil enable\n\necho \"Starting backup\"\ntmutil startbackup\n\nexit 0\n```\n",
  "title": "Corrupted Time Machine Fix",
  "untracked": false,
  "uri": "/Corrupted_Time_Machine_Fix",
  "relativePath": "Corrupted Time Machine Fix.md"
}
