{"code":"var Component=(()=>{var k=Object.create;var l=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var F=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),y=(s,e)=>{for(var a in e)l(s,a,{get:e[a],enumerable:!0})},d=(s,e,a,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of m(e))!g.call(s,n)&&n!==a&&l(s,n,{get:()=>e[n],enumerable:!(r=p(e,n))||r.enumerable});return s};var C=(s,e,a)=>(a=s!=null?k(u(s)):{},d(e||!s||!s.__esModule?l(a,\"default\",{value:s,enumerable:!0}):a,s)),E=s=>d(l({},\"__esModule\",{value:!0}),s);var t=F((B,h)=>{h.exports=_jsx_runtime});var v={};y(v,{default:()=>o});var i=C(t());function c(s){let e={a:\"a\",blockquote:\"blockquote\",code:\"code\",em:\"em\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...s.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:\"A man page do macOS 27 Golden Gate traz uma linha que nunca esteve l\\xE1 antes:\"}),`\n`,(0,i.jsxs)(e.blockquote,{children:[`\n`,(0,i.jsx)(e.p,{children:\"No macOS 27.0, o hdiutil est\\xE1 descontinuado. Use o diskutil image em vez dele para todas as opera\\xE7\\xF5es com imagens de disco.\"}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"O \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" \\xE9 a forma de criar, montar, converter e inspecionar imagens de disco no Mac desde o Mac OS X 10.0. Se voc\\xEA j\\xE1 lan\\xE7ou um \",(0,i.jsx)(e.code,{children:\".dmg\"}),\", escreveu um script de instalador, construiu um job de CI que empacota um app para Mac, ou criou um cont\\xEAiner criptografado para manter algo privado, voc\\xEA j\\xE1 o usou \\u2014 diretamente ou atrav\\xE9s de algo que o chamou por voc\\xEA.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Aqui est\\xE1 a parte que a maioria das coberturas deixou passar: \",(0,i.jsx)(e.strong,{children:\"o substituto n\\xE3o est\\xE1 a caminho. Ele j\\xE1 est\\xE1 no seu Mac.\"}),\" Abra o Terminal no macOS 26 Tahoe agora mesmo e execute \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\". Ele responde.\"]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:\"Descontinua\\xE7\\xE3o do hdiutil no macOS 27\",src:\"/images/blog/hdiutil-deprecated-macos-27-diskutil-image-migration-guide-2026/hero.webp\",width:\"1024\",height:\"541\"})}),`\n`,(0,i.jsx)(e.h2,{id:\"principais-conclus\\xF5es\",children:\"Principais Conclus\\xF5es\"}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsxs)(e.strong,{children:[\"O \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" j\\xE1 funciona no macOS 26.\"]}),\" Verificado no macOS 26.5.2 (build 25F84). Voc\\xEA pode migrar e testar scripts hoje, antes do lan\\xE7amento do macOS 27.\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Descontinuado n\\xE3o \\xE9 removido.\"}),\" O \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" continua funcionando no macOS 27. Nada quebra no primeiro dia. Mas a Apple vem reduzindo o comando h\\xE1 sete anos, e a man page documenta cada etapa.\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"A superf\\xEDcie de comandos \\xE9 muito menor.\"}),\" O \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" exp\\xF5e 23 verbos. O \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" exp\\xF5e 5 subcomandos.\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsxs)(e.strong,{children:[\"N\\xE3o existe \",(0,i.jsx)(e.code,{children:\"detach\"}),\".\"]}),\" Voc\\xEA pode anexar (attach) uma imagem de disco com \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\", mas n\\xE3o desanex\\xE1-la (detach) \\u2014 isso passa para o \",(0,i.jsx)(e.code,{children:\"diskutil eject\"}),\".\"]}),`\n`,(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:\"Algumas coisas realmente ainda n\\xE3o t\\xEAm substituto\"}),\", incluindo \",(0,i.jsx)(e.code,{children:\"verify\"}),\", \",(0,i.jsx)(e.code,{children:\"compact\"}),\" e \",(0,i.jsx)(e.code,{children:\"makehybrid\"}),\". Se seus scripts de build usam esses comandos, voc\\xEA n\\xE3o tem um caminho de migra\\xE7\\xE3o hoje.\"]}),`\n`]}),`\n`,(0,i.jsx)(e.h2,{id:\"primeiro-confirme-no-seu-pr\\xF3prio-mac\",children:\"Primeiro: Confirme No Seu Pr\\xF3prio Mac\"}),`\n`,(0,i.jsx)(e.p,{children:\"N\\xE3o confie apenas na minha palavra para nada disso. Um comando:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsx)(e.code,{children:(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"})]})})})}),`\n`,(0,i.jsx)(e.p,{children:\"No macOS 26.5.2, isso imprime:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"OVERVIEW: Manipulate disk images (attach, create, etc)\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"USAGE: diskutil image [--verbose] [--stdinpassphrase] [--plist] <subcommand>\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"SUBCOMMANDS:\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"  attach                  Attach a disk image as a device.\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"  info                    Print info regarding a disk image.\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"  create                  Create a disk image. Either blank or from an existing\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"                          source (disk, disk image or folder).\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"  resize                  Resize a given image to a specified size if\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"                          applicable.\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"  chpass                  Change the passphrase of a given encrypted image.\"})})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"Cinco subcomandos. Agora compare isso com o que o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" oferece, direto da pr\\xF3pria man page:\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Common verbs include attach, detach, verify, create, convert, and compact.\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"The rest of the verbs are currently: help, info, burn, checksum, chpass,\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"erasekeys, imageinfo, isencrypted, mountvol, unmount, plugins, udifrez,\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"udifderez, resize, segment, makehybrid, and pmap.\"})})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"S\\xE3o 23 verbos contra 5 subcomandos. Essa propor\\xE7\\xE3o \\xE9 alarmante \\xE0 primeira vista e tamb\\xE9m \\xE9 enganosa, porque uma compara\\xE7\\xE3o direta verbo a verbo chega \\xE0 resposta errada. V\\xE1rios verbos do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" foram incorporados ao \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" sob outros nomes, v\\xE1rios j\\xE1 estavam descontinuados havia anos, e um importante migrou por completo para um comando diferente.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"Descobrir o que \\xE9 o qu\\xEA \\xE9 a verdadeira migra\\xE7\\xE3o, ent\\xE3o vamos fazer isso direito.\"}),`\n`,(0,i.jsx)(e.h2,{id:\"isso-n\\xE3o-surgiu-do-nada\",children:\"Isso N\\xE3o Surgiu do Nada\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Antes da tabela de migra\\xE7\\xE3o, um pouco de contexto que torna a descontinua\\xE7\\xE3o menos abrupta. A man page do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" cont\\xE9m uma se\\xE7\\xE3o de compatibilidade que funciona como um registro de sete anos da Apple restringindo a ferramenta. Isso est\\xE1 no seu Mac agora mesmo \\u2014 rode \",(0,i.jsx)(e.code,{children:\"man hdiutil\"}),\" e procure pelos t\\xEDtulos de vers\\xE3o:\"]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"macOS 10.15\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Introduziu a compress\\xE3o lzma no formato ULMO\"}),`\n`,(0,i.jsxs)(e.li,{children:[\"Descontinuou o suporte a arquivos de fork duplo no estilo OS 9 (\",(0,i.jsx)(e.code,{children:\"hdiutil flatten\"}),\"/\",(0,i.jsx)(e.code,{children:\"unflatten\"}),\")\"]}),`\n`,(0,i.jsxs)(e.li,{children:[\"Removeu o comando descontinuado \",(0,i.jsx)(e.code,{children:\"hdiutil internet-enable\"}),\" e as flags de attach do IDME\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"macOS 11.0\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Removeu o suporte aos formatos DiskCopy42, DART e NDIF\"}),`\n`,(0,i.jsx)(e.li,{children:\"Removeu o suporte \\xE0s codifica\\xE7\\xF5es AppleSingle e MacBinary\"}),`\n`,(0,i.jsx)(e.li,{children:\"Removeu o suporte a arquivos de fork duplo no estilo OS 9\"}),`\n`,(0,i.jsx)(e.li,{children:\"Mudou o sistema de arquivos padr\\xE3o para novas imagens para APFS\"}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"macOS 12.0\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsx)(e.li,{children:\"Descontinuou o formato UDBZ (compress\\xE3o bzip2)\"}),`\n`,(0,i.jsxs)(e.li,{children:[\"Descontinuou imagens UDIF segmentadas (\",(0,i.jsx)(e.code,{children:\"hdiutil segment\"}),\", \",(0,i.jsx)(e.code,{children:\"-segmentSize\"}),\")\"]}),`\n`,(0,i.jsxs)(e.li,{children:[\"Descontinuou \",(0,i.jsx)(e.code,{children:\"hdiutil udifrez\"}),\"/\",(0,i.jsx)(e.code,{children:\"udifderez\"}),\" (incorporar e extrair recursos)\"]}),`\n`]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"macOS 13.0\"})}),`\n`,(0,i.jsxs)(e.ul,{children:[`\n`,(0,i.jsxs)(e.li,{children:[\"Removeu a op\\xE7\\xE3o \",(0,i.jsx)(e.code,{children:\"encrypted-encoding-version\"}),\"; todas as novas imagens criptografadas usam a vers\\xE3o 2\"]}),`\n`]}),`\n`,(0,i.jsxs)(e.p,{children:[\"A man page tamb\\xE9m sinaliza, no pr\\xF3prio texto, que \",(0,i.jsx)(e.code,{children:\"-passphrase\"}),\" \\xE9 inseguro, que imagens segmentadas est\\xE3o descontinuadas e que o UDBZ est\\xE1 descontinuado.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Lida como um arco cont\\xEDnuo, a descontinua\\xE7\\xE3o no macOS 27 \\xE9 a \\xFAltima etapa de um processo que come\\xE7ou por volta de 2019, n\\xE3o uma decis\\xE3o tomada neste ver\\xE3o. Isso importa para o planejamento: a Apple remove coisas dessa ferramenta lentamente e as anuncia primeiro na man page. O \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" no macOS 27 est\\xE1 descontinuado, n\\xE3o desapareceu, e n\\xE3o h\\xE1 data de remo\\xE7\\xE3o anunciada.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"a-tabela-de-migra\\xE7\\xE3o\",children:\"A Tabela de Migra\\xE7\\xE3o\"}),`\n`,(0,i.jsx)(e.p,{children:\"Este \\xE9 o mapa. Testei cada um destes itens no macOS 26.5.2.\"}),`\n`,(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{children:\"O que voc\\xEA quer\"}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.code,{children:\"hdiutil\"})}),(0,i.jsx)(e.th,{children:(0,i.jsx)(e.code,{children:\"diskutil image\"})})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Montar uma imagem\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil attach x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image attach x.dmg\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Desmontar uma imagem\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil detach /dev/diskN\"})}),(0,i.jsxs)(e.td,{children:[(0,i.jsxs)(e.strong,{children:[\"N\\xE3o existe em \",(0,i.jsx)(e.code,{children:\"diskutil image\"})]}),\" \\u2014 use \",(0,i.jsx)(e.code,{children:\"diskutil eject /dev/diskN\"})]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Criar uma imagem em branco\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil create -size 1g -fs APFS x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image create blank --size 1g x.dmg\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Criar uma imagem a partir de uma pasta\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil create -srcfolder ./dir x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image create from ./dir x.dmg\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Converter formato\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil convert in.dmg -format UDZO -o out.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image create from in.dmg out.dmg --format UDZO\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Inspecionar uma imagem\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil imageinfo x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image info x.dmg\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Verificar se est\\xE1 criptografada\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil isencrypted x.dmg\"})}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.code,{children:\"diskutil image info\"}),\" \\u2192 \",(0,i.jsx)(e.code,{children:\"Is Encrypted:\"})]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Redimensionar\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil resize -size 2g x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image resize\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Alterar a senha (passphrase)\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil chpass x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"diskutil image chpass x.dmg\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Verificar checksum\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil verify x.dmg\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"Sem equivalente\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Compactar uma imagem esparsa\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil compact x.sparsebundle\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"Sem equivalente\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Criar uma imagem h\\xEDbrida/ISO\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil makehybrid\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"Sem equivalente\"})})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Incorporar um contrato de licen\\xE7a\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil udifrez\"})}),(0,i.jsxs)(e.td,{children:[(0,i.jsx)(e.strong,{children:\"Sem equivalente\"}),\" (descontinuado no macOS 12)\"]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{children:\"Gravar em m\\xEDdia \\xF3ptica\"}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.code,{children:\"hdiutil burn\"})}),(0,i.jsx)(e.td,{children:(0,i.jsx)(e.strong,{children:\"Sem equivalente\"})})]})]})]}),`\n`,(0,i.jsxs)(e.h3,{id:\"a-surpresa-do-convert\",children:[\"A surpresa do \",(0,i.jsx)(e.code,{children:\"convert\"})]}),`\n`,(0,i.jsx)(e.p,{children:'O erro mais comum que vi nos primeiros coment\\xE1rios \\xE9 dizer que \"n\\xE3o existe convert\". Existe sim \\u2014 s\\xF3 n\\xE3o se chama assim.'}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"OVERVIEW: Create a disk image from an existing source (disk, disk image or\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"folder).\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Source and destination disk image can be the same, which will perform the\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"conversion in place.\"})})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"O \",(0,i.jsx)(e.code,{children:\"diskutil image create from\"}),\" aceita uma imagem de disco como origem, ent\\xE3o ele \\xE9 o \",(0,i.jsx)(e.code,{children:\"hdiutil convert\"}),\" com outro nome, e al\\xE9m disso suporta convers\\xE3o no local (in-place), algo que o \",(0,i.jsx)(e.code,{children:\"hdiutil convert\"}),\" nunca fez. Se voc\\xEA contar verbos em vez de ler o texto de ajuda, vai concluir que um recurso foi removido quando na verdade ele foi ampliado.\"]}),`\n`,(0,i.jsxs)(e.h3,{id:\"a-lacuna-do-detach-\\xE9-real\",children:[\"A lacuna do \",(0,i.jsx)(e.code,{children:\"detach\"}),\" \\xE9 real\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Este caso n\\xE3o \\xE9 uma simples renomea\\xE7\\xE3o. N\\xE3o existe detach em lugar nenhum do \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\":\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" detach\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /dev/disk12\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"Error:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 2\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" unexpected\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" arguments:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 'detach',\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" '/dev/disk12'\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"Usage:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" [--verbose] [--stdinpassphrase] [--plist] \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"<\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"subcommand\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\">\"})]})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"O substituto \\xE9 o comando \",(0,i.jsx)(e.code,{children:\"diskutil\"}),\" de n\\xEDvel superior:\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" eject\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /dev/disk12\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"Disk\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /dev/disk12\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ejected\"})]})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"O que funciona bem \\u2014 mas note o que isso faz com um script. A simetria limpa de \",(0,i.jsx)(e.code,{children:\"hdiutil attach\"}),\" / \",(0,i.jsx)(e.code,{children:\"hdiutil detach\"}),\" vira \",(0,i.jsx)(e.code,{children:\"diskutil image attach\"}),\" / \",(0,i.jsx)(e.code,{children:\"diskutil eject\"}),\", dois n\\xEDveis diferentes de subcomando do mesmo bin\\xE1rio. Qualquer fun\\xE7\\xE3o wrapper que voc\\xEA tenha que combine attach e detach precisa ser reestruturada, n\\xE3o apenas passar por um find-and-replace.\"]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:\"Migrando scripts de imagem de disco\",src:\"/images/blog/hdiutil-deprecated-macos-27-diskutil-image-migration-guide-2026/content-1.webp\",width:\"1024\",height:\"572\"})}),`\n`,(0,i.jsxs)(e.h2,{id:\"o-que-o-diskutil-image-faz-melhor\",children:[\"O Que o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" Faz Melhor\"]}),`\n`,(0,i.jsx)(e.p,{children:\"Seria injusto apresentar isso como pura perda. Tr\\xEAs coisas foram genuinamente melhoradas.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"asif-que-o-hdiutil-simplesmente-n\\xE3o-consegue-criar\",children:\"ASIF, que o hdiutil simplesmente n\\xE3o consegue criar\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"O \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" suporta o Apple Sparse Image Format (ASIF). O \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" n\\xE3o. Se voc\\xEA quer ASIF \\u2014 e, para discos de m\\xE1quina virtual em APFS, \\xE9 o formato para o qual a Apple vem direcionando \\u2014 o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" \\xE9 a \\xFAnica ferramenta que o produz.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"Vale a pena conhecer as listas de formatos:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"create blank --format : RAW, ASIF, UDSB          (default RAW)\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"create from  --format : ASIF, RAW, UDRO, UDSB,\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"                        UDZO, ULFO, ULMO         (default ULFO)\"})})]})})}),`\n`,(0,i.jsx)(e.h3,{id:\"ele-anexa-via-http-e-cria-discos-ram-diretamente\",children:\"Ele anexa via HTTP e cria discos RAM diretamente\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Do texto de ajuda do \",(0,i.jsx)(e.code,{children:\"attach\"}),\":\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsx)(e.code,{children:(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"Supports 'ram://<size>', file paths, http[s].\"})})})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"Criar um disco RAM no macOS tradicionalmente era o inc\\xF4modo processo em duas etapas: \",(0,i.jsx)(e.code,{children:\"hdiutil attach -nomount ram://<sectors>\"}),\" seguido de \",(0,i.jsx)(e.code,{children:\"newfs_hfs\"}),\" ou \",(0,i.jsx)(e.code,{children:\"diskutil eraseVolume\"}),\". Aqui \\xE9 um \\xFAnico argumento em uma flag documentada.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"\\xE9-substancialmente-mais-r\\xE1pido\",children:\"\\xC9 substancialmente mais r\\xE1pido\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Jeff Johnson, da Lapcat Software, comparou os dois enquanto investigava a descontinua\\xE7\\xE3o no in\\xEDcio de agosto de 2026, e mediu o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" completando uma opera\\xE7\\xE3o de cria\\xE7\\xE3o em 40\\u201345 segundos contra 110\\u2013115 segundos do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\", produzindo uma imagem menor no processo. Isso n\\xE3o \\xE9 uma diferen\\xE7a de arredondamento. Para um job de CI que constr\\xF3i imagens de disco a cada commit, isso \\xE9 significativo.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"o-que-realmente-vai-quebrar-nos-seus-scripts\",children:\"O Que Realmente Vai Quebrar Nos Seus Scripts\"}),`\n`,(0,i.jsx)(e.p,{children:\"Avisos de descontinua\\xE7\\xE3o n\\xE3o quebram builds. Estas coisas v\\xE3o quebrar.\"}),`\n`,(0,i.jsxs)(e.h3,{id:\"1-o--puppetstrings-n\\xE3o-tem-substituto\",children:[\"1. O \",(0,i.jsx)(e.code,{children:\"-puppetstrings\"}),\" n\\xE3o tem substituto\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"A flag \",(0,i.jsx)(e.code,{children:\"-puppetstrings\"}),\" do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" emite uma sa\\xEDda de progresso leg\\xEDvel por m\\xE1quina, que \\xE9 exatamente o que um sistema de build quer. Johnson aponta essa aus\\xEAncia como uma das lacunas not\\xE1veis. O \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" tem \",(0,i.jsx)(e.code,{children:\"--plist\"}),\" para \",(0,i.jsx)(e.em,{children:\"resultados\"}),\" estruturados, e imprime progresso leg\\xEDvel para humanos assim:\"]}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"[5% completed] [79% completed] [98% completed] [100% completed]\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{children:\"test.dmg created\"})})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"Se voc\\xEA tem ferramentas que fazem parsing de linhas \",(0,i.jsx)(e.code,{children:\"PERCENT:\"}),\" do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\", esse parser n\\xE3o vai ter a que se conectar.\"]}),`\n`,(0,i.jsxs)(e.h3,{id:\"2-v\\xE1rias-op\\xE7\\xF5es-do-create-simplesmente-desapareceram\",children:[\"2. V\\xE1rias op\\xE7\\xF5es do \",(0,i.jsx)(e.code,{children:\"create\"}),\" simplesmente desapareceram\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"O texto de Johnson lista \",(0,i.jsx)(e.code,{children:\"-[no]crossdev\"}),\", \",(0,i.jsx)(e.code,{children:\"-[no]scrub\"}),\", \",(0,i.jsx)(e.code,{children:\"-[no]anyowners\"}),\", \",(0,i.jsx)(e.code,{children:\"-skipunreadable\"}),\", \",(0,i.jsx)(e.code,{children:\"-[no]atomic\"}),\" e \",(0,i.jsx)(e.code,{children:\"-copyuid\"}),\" como sem correspondente. Se voc\\xEA constr\\xF3i imagens a partir de pastas de forma controlada \\u2014 instaladores, capturas forenses, qualquer coisa em que a propriedade dos arquivos ou quais arquivos s\\xE3o inclu\\xEDdos precisam ser exatos \\u2014 leia essa lista com aten\\xE7\\xE3o. \",(0,i.jsx)(e.code,{children:\"-skipunreadable\"}),\" e \",(0,i.jsx)(e.code,{children:\"-copyuid\"}),\", em particular, s\\xE3o estruturais para alguns scripts de empacotamento.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"3-o-comportamento-de-scrubbing-mudou-silenciosamente\",children:\"3. O comportamento de scrubbing mudou silenciosamente\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Johnson relata que o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" exclui automaticamente arquivos tempor\\xE1rios, como pastas de lixeira, comportando-se como se \",(0,i.jsx)(e.code,{children:\"-scrub\"}),\" estivesse sempre ativado. O \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" s\\xF3 fazia o scrub quando solicitado. Se voc\\xEA espera que o conte\\xFAdo da sua imagem seja byte a byte id\\xEAntico a um diret\\xF3rio de origem, isso vai produzir uma imagem diferente sem avisar.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"4-o-tratamento-de-permiss\\xF5es-falha-silenciosamente\",children:\"4. O tratamento de permiss\\xF5es falha silenciosamente\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Este \\xE9 o que eu testaria primeiro. Johnson descobriu que, onde o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" dispara um prompt de autentica\\xE7\\xE3o ao encontrar arquivos de propriedade do root, o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" n\\xE3o pede nada e simplesmente falha. Um script que costumava pausar para pedir credenciais agora vai produzir uma imagem incompleta e, dependendo do seu tratamento de erros, pode reportar sucesso.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"Se voc\\xEA constr\\xF3i imagens a partir de diret\\xF3rios que cont\\xEAm arquivos que n\\xE3o s\\xE3o seus, verifique a sa\\xEDda em vez de confiar no c\\xF3digo de sa\\xEDda (exit code).\"}),`\n`,(0,i.jsx)(e.h3,{id:\"5-o-log-\\xE9-mais-enxuto\",children:\"5. O log \\xE9 mais enxuto\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"A sa\\xEDda detalhada (verbose) do \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" \\xE9 menos completa do que a do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\". Quando um build falha \\xE0s 3 da manh\\xE3, \\xE9 a\\xED que voc\\xEA descobre isso.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"como-migrar-sem-quebrar-o-suporte-ao-macos-26\",children:\"Como Migrar Sem Quebrar o Suporte ao macOS 26\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"A maioria de n\\xF3s precisa dar suporte aos dois por um tempo. A boa not\\xEDcia, e o ponto pr\\xE1tico deste artigo inteiro, \\xE9 que \",(0,i.jsx)(e.strong,{children:\"voc\\xEA n\\xE3o precisa ramificar (branch) por vers\\xE3o do sistema\"}),\", porque o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" tamb\\xE9m existe no macOS 26.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"Detecte a capacidade, n\\xE3o a vers\\xE3o:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"#!/bin/bash\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Prefer diskutil image; fall back to hdiutil where unavailable.\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"if\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --help\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" >\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"/dev/null\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" 2>&1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"; \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"then\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"  USE_DISKUTIL\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"1\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"else\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"  USE_DISKUTIL\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"0\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"fi\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"make_image_from_folder\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"() {\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  local\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" src\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"$1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" dst\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"$2\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  if\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" [ \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$USE_DISKUTIL\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" -eq\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" ]; \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"then\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"    diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$src\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$dst\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" UDZO\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  else\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"    hdiutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -srcfolder\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$src\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" UDZO\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$dst\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  fi\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"}\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"attach_image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"() {\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  local\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" img\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"$1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  if\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" [ \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$USE_DISKUTIL\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" -eq\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" ]; \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"then\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"    diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" attach\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$img\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --nobrowse\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  else\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"    hdiutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" attach\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$img\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -nobrowse\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  fi\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"}\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"detach_device\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"() {\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"  # Note the asymmetry: detach is NOT under `diskutil image`.\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  local\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" dev\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"$1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  if\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" [ \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$USE_DISKUTIL\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" -eq\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" ]; \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"then\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"    diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" eject\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$dev\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  else\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"    hdiutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" detach\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$dev\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"  fi\"})}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"}\"})})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"Depois verifique a sa\\xEDda, porque \\xE9 a\\xED que vivem as diferen\\xE7as silenciosas:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Compare what actually landed in the image against the source.\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" attach\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" build.dmg\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --nobrowse\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --mountPoint\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /tmp/verify_mnt\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diff\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -rq\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ./src\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /tmp/verify_mnt/src\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" eject\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /tmp/verify_mnt\"})]})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"Esse \",(0,i.jsx)(e.code,{children:\"diff -rq\"}),\" \\xE9 a etapa que eu n\\xE3o pularia. Entre o scrubbing sempre ativo e as falhas silenciosas de permiss\\xE3o, uma imagem que constr\\xF3i com sucesso n\\xE3o \\xE9 a mesma coisa que uma imagem que cont\\xE9m o que voc\\xEA pretendia.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Se voc\\xEA est\\xE1 montando um ambiente de desenvolvimento Mac do zero, nosso \",(0,i.jsx)(e.a,{href:\"/blog/ultimate-apple-silicon-development-environment-setup-guide-2025\",children:\"guia de configura\\xE7\\xE3o de ambiente de desenvolvimento para Apple silicon\"}),\" cobre as ferramentas ao redor, e o \",(0,i.jsx)(e.a,{href:\"/blog/mac-terminal-mastery-2025-command-line-productivity-guide\",children:\"guia de dom\\xEDnio do Terminal\"}),\" cobre os fundamentos de shell que esses scripts pressup\\xF5em.\"]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.img,{alt:\"Verificando o conte\\xFAdo de imagens de disco\",src:\"/images/blog/hdiutil-deprecated-macos-27-diskutil-image-migration-guide-2026/content-2.webp\",width:\"1024\",height:\"572\"})}),`\n`,(0,i.jsx)(e.h2,{id:\"um-exemplo-pr\\xE1tico-do-in\\xEDcio-ao-fim\",children:\"Um Exemplo Pr\\xE1tico, do In\\xEDcio ao Fim\"}),`\n`,(0,i.jsx)(e.p,{children:\"Aqui est\\xE1 um ciclo completo executado no macOS 26.5.2, para que voc\\xEA veja a sa\\xEDda real em vez de uma reconstru\\xE7\\xE3o.\"}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Criar uma imagem a partir de uma pasta:\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" mkdir\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -p\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" src\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" && \"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"echo\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"hello\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" >\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" src/file.txt\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" src\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" UDZO\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" test.dmg\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"[5% completed] [79% completed] [98% completed] [99% completed] [100% completed]\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"test\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\".dmg\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" created\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Inspecionar:\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" info\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" test.dmg\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"Image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Format:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" UDZO\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"Format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Description:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" UDIF\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" read-only\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" compressed\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\" (zlib)\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\tIdentity\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Info:\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tUUID:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 061189CB-7502-4EA6-BFE3-424442C16D10\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\tSize\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Info:\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tEmpty\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Bytes:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 3437056\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tTotal\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Bytes:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 4233216\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\tCompression\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Info:\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tCompressed\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Bytes:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 4124\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tCompression\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Type:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" zlib\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\tEncryption\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Info:\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tIs\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Encrypted:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 0\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\tMaster\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Checksum\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Info:\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tChecksum\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Type:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" crc32\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"\t\tChecksum\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Value:\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" c4\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" e3\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" 90\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 4b\"})]})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"Note que o \",(0,i.jsx)(e.code,{children:\"info\"}),\" cobre o que \",(0,i.jsx)(e.code,{children:\"hdiutil imageinfo\"}),\", \",(0,i.jsx)(e.code,{children:\"isencrypted\"}),\" e parte do \",(0,i.jsx)(e.code,{children:\"checksum\"}),\" costumavam entregar separadamente. Ele reporta o checksum armazenado \\u2014 n\\xE3o o verifica. Essa \\xE9 a lacuna do \",(0,i.jsx)(e.code,{children:\"hdiutil verify\"}),\".\"]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Anexar (attach):\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" attach\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" test.dmg\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"/dev/disk12\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"  \tGUID_partition_scheme\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"/dev/disk13s1\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"\tApple_APFS_Volume\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"    \t/Volumes/src\"})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:\"Desanexar (detach) \\u2014 com o comando diferente:\"})}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"$\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" eject\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /dev/disk12\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"Disk\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /dev/disk12\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ejected\"})]})]})})}),`\n`,(0,i.jsx)(e.h2,{id:\"imagens-criptografadas\",children:\"Imagens Criptografadas\"}),`\n`,(0,i.jsx)(e.p,{children:\"Se voc\\xEA usa imagens de disco como cont\\xEAineres criptografados, a mec\\xE2nica \\xE9 direta, mas as op\\xE7\\xF5es s\\xE3o mais restritas.\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Create an encrypted blank image\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" blank\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --encrypt\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --size\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 10g\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --volumeName\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Vault\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" vault.dmg\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Provide the passphrase on stdin rather than interactively\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"printf\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" '%s'\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$PASSPHRASE\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\" |\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\" diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" blank\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --encrypt\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --stdinpassphrase\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" \\\\\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"  --size\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 10g\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --volumeName\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" Vault\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" vault.dmg\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Change the passphrase later\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" chpass\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" vault.dmg\"})]})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"O \",(0,i.jsx)(e.code,{children:\"--encrypt\"}),\" \\xE9 documentado como AES-256 e n\\xE3o h\\xE1 escolha de algoritmo, o que \\xE9 uma simplifica\\xE7\\xE3o, n\\xE3o uma perda \\u2014 a Apple removeu a vers\\xE3o de codifica\\xE7\\xE3o criptografada mais antiga l\\xE1 no macOS 13.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"A flag \",(0,i.jsx)(e.code,{children:\"--stdinpassphrase\"}),\" \\xE9 a que voc\\xEA deve usar em qualquer script. A pr\\xF3pria man page do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" avisa que \",(0,i.jsx)(e.code,{children:\"-passphrase\"}),\" \\xE9 inseguro, pelo motivo simples de que uma senha na linha de comando fica vis\\xEDvel na tabela de processos para todos os usu\\xE1rios da m\\xE1quina.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Se voc\\xEA depende de imagens de disco para privacidade, e n\\xE3o apenas por conveni\\xEAncia, vale a pena ler nosso \",(0,i.jsx)(e.a,{href:\"/blog/mac-security-privacy-guide-2026\",children:\"guia de seguran\\xE7a e privacidade no Mac\"}),\" para entender onde uma imagem criptografada se encaixa em rela\\xE7\\xE3o ao FileVault \\u2014 eles resolvem problemas diferentes, e um \",(0,i.jsx)(e.code,{children:\".dmg\"}),\" criptografado n\\xE3o protege nada enquanto est\\xE1 montado.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"para-que-servem-as-imagens-de-disco-hoje\",children:\"Para Que Servem as Imagens de Disco Hoje\"}),`\n`,(0,i.jsx)(e.p,{children:'Vale a pena perguntar por que qualquer coisa disso importa, porque \"imagem de disco\" soa como uma rel\\xEDquia, mas o ferramental ao redor dela \\xE9 discretamente estrutural em v\\xE1rios lugares.'}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Distribui\\xE7\\xE3o de aplicativos.\"}),\" O \",(0,i.jsx)(e.code,{children:\".dmg\"}),\" continua sendo a forma padr\\xE3o de lan\\xE7ar um app para Mac fora da App Store. Uma imagem compactada, somente leitura, contendo um app bundle e um symlink para \",(0,i.jsx)(e.code,{children:\"/Applications\"}),\", \\xE9 a conven\\xE7\\xE3o de arrastar-para-instalar que os usu\\xE1rios conhecem. Cada uma dessas imagens \\xE9 constru\\xEDda por um script que chama uma ferramenta de imagem de disco.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Cont\\xEAineres criptografados.\"}),\" Um \",(0,i.jsx)(e.code,{children:\".dmg\"}),\" criptografado \\xE9 um cofre port\\xE1til e autocontido que monta como um volume e funciona em qualquer Mac sem software especial. Diferente do FileVault, que protege um disco inteiro em repouso, uma imagem criptografada protege um conjunto espec\\xEDfico de arquivos que voc\\xEA pode mover \\u2014 para um pendrive, para armazenamento em nuvem, para um colega.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Discos de m\\xE1quina virtual.\"}),\" \\xC9 aqui que o ASIF importa e onde a dire\\xE7\\xE3o da Apple fica \\xF3bvia.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Sparsebundles para backup em rede.\"}),\" Quando o Time Machine faz backup para um destino de rede, ele armazena o backup dentro de um sparsebundle \\u2014 uma imagem de disco dividida em muitos arquivos de banda pequenos, de modo que s\\xF3 as bandas alteradas precisam ser sincronizadas. Quem j\\xE1 manteve um desses j\\xE1 rodou \",(0,i.jsx)(e.code,{children:\"hdiutil compact\"}),\" para recuperar espa\\xE7o de bandas exclu\\xEDdas.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Forense e arquivamento.\"}),\" Uma imagem em n\\xEDvel de bloco de um volume, com um checksum, \\xE9 como voc\\xEA preserva o estado exato de um disco. O \",(0,i.jsx)(e.code,{children:\"hdiutil verify\"}),\" \\xE9 como voc\\xEA confirma isso depois.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Compare essa lista com a tabela de migra\\xE7\\xE3o e as lacunas se alinham com comunidades espec\\xEDficas, em vez de serem aleat\\xF3rias. Desenvolvedores de apps perdem o mecanismo de contrato de licen\\xE7a e o \",(0,i.jsx)(e.code,{children:\"-puppetstrings\"}),\". Usu\\xE1rios de backup e sparsebundle perdem o \",(0,i.jsx)(e.code,{children:\"compact\"}),\". Usu\\xE1rios de arquivamento e forense perdem o \",(0,i.jsx)(e.code,{children:\"verify\"}),\". Todo mundo que faz o trabalho rotineiro de criar-converter-anexar fica bem.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"asif-o-formato-que-s\\xF3-a-nova-ferramenta-cria\",children:\"ASIF: O Formato Que S\\xF3 a Nova Ferramenta Cria\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"O Apple Sparse Image Format \\xE9 o sinal mais claro de por que a Apple quer que as pessoas deixem de usar o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\", porque o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" simplesmente n\\xE3o consegue produzi-lo.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"Uma imagem esparsa s\\xF3 ocupa espa\\xE7o em disco para blocos que realmente cont\\xEAm dados. Uma imagem esparsa de 100 GB guardando 10 GB de arquivos ocupa cerca de 10 GB no disco e cresce conforme voc\\xEA adiciona dados. Os antigos formatos de imagem esparsa \",(0,i.jsx)(e.code,{children:\"UDSP\"}),\" e de sparsebundle \",(0,i.jsx)(e.code,{children:\"UDSB\"}),\" tamb\\xE9m faziam isso, com problemas conhecidos: sparsebundles se fragmentam em milhares de arquivos de banda, e ambos os formatos historicamente recuperavam espa\\xE7o mal, motivo exato pelo qual o \",(0,i.jsx)(e.code,{children:\"hdiutil compact\"}),\" precisava existir.\"]}),`\n`,(0,i.jsx)(e.p,{children:\"O ASIF \\xE9 projetado em conjunto com o APFS, e n\\xE3o simplesmente encaixado por cima dele, o que permite que o pr\\xF3prio suporte a arquivos esparsos do sistema de arquivos fa\\xE7a o trabalho, em vez do formato de imagem ter que emul\\xE1-lo. Na pr\\xE1tica, o ganho aparece mais na virtualiza\\xE7\\xE3o, onde o disco virtual de uma VM \\xE9 um arquivo grande, majoritariamente vazio, que muda constantemente \\u2014 o caso que mais penalizava os formatos antigos.\"}),`\n`,(0,i.jsx)(e.p,{children:\"Voc\\xEA pode criar um hoje mesmo:\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# A 100GB ASIF image that occupies only what it uses\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" blank\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ASIF\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --size\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" 100g\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" \\\\\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"  --volumeName\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" VMDisk\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" vmdisk.asif\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# Convert an existing image to ASIF\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" old.dmg\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" new.asif\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" ASIF\"})]})]})})}),`\n`,(0,i.jsxs)(e.p,{children:[\"Note que o formato \\xE9 inferido pela extens\\xE3o \\u2014 por padr\\xE3o, \",(0,i.jsx)(e.code,{children:\"create blank\"}),\" usa \",(0,i.jsx)(e.code,{children:\"RAW\"}),', \"a menos que o caminho da imagem tenha extens\\xE3o .asif ou .sparsebundle\". Nomear o arquivo corretamente j\\xE1 \\xE9 suficiente; passar ',(0,i.jsx)(e.code,{children:\"--format\"}),\" tamb\\xE9m \\xE9 apenas uma garantia extra.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"O trade-off \\xE9 a portabilidade. O ASIF \\xE9 novo, e uma imagem ASIF n\\xE3o vai abrir em um macOS mais antigo ou em qualquer coisa que n\\xE3o seja um Mac. Para um disco de VM ou um volume de trabalho local, isso \\xE9 irrelevante. Para qualquer coisa que voc\\xEA v\\xE1 entregar a outra pessoa, use \",(0,i.jsx)(e.code,{children:\"UDZO\"}),\" e mantenha a compatibilidade.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"onde-isso-se-encaixa-em-um-pipeline-de-distribui\\xE7\\xE3o\",children:\"Onde Isso Se Encaixa em um Pipeline de Distribui\\xE7\\xE3o\"}),`\n`,(0,i.jsx)(e.p,{children:\"Se voc\\xEA lan\\xE7a um app para Mac fora da App Store, a etapa de imagem de disco fica no meio de uma cadeia, e vale a pena ver onde a mudan\\xE7a se encaixa.\"}),`\n`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,i.jsxs)(e.code,{children:[(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"#!/bin/bash\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"set\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -euo\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" pipefail\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"APP\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"build/MyApp.app\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"DMG\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"dist/MyApp.dmg\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"STAGE\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},children:\"=\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"$('}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"mktemp\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -d\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:')\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# 1. Sign the app bundle (unchanged by any of this)\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"codesign\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --force\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --options\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" runtime\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --timestamp\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" \\\\\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"  --sign\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"Developer ID Application: Example Inc (TEAMID123)\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" \\\\\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'  \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$APP\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# 2. Stage the contents the user will see\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"cp\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -R\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$APP\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$STAGE\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'/\"'})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"ln\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -s\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" /Applications\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$STAGE\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'/Applications\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# 3. Build the image \\u2014 the step this article is about\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"diskutil\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" image\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" create\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" from\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$STAGE\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$DMG\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --format\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" UDZO\"})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# 4. Sign the image itself\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"codesign\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --force\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --timestamp\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" \\\\\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\"  --sign\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"Developer ID Application: Example Inc (TEAMID123)\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" \\\\\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'  \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$DMG\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsx)(e.span,{className:\"line\",children:(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},children:\"# 5. Notarize and staple\"})}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"xcrun\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" notarytool\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" submit\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$DMG\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --keychain-profile\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"AC_NOTARY\"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" --wait\"})]}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"xcrun\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" stapler\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" staple\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$DMG\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]}),`\n`,(0,i.jsx)(e.span,{className:\"line\"}),`\n`,(0,i.jsxs)(e.span,{className:\"line\",children:[(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"rm\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -rf\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:' \"'}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},children:\"$STAGE\"}),(0,i.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'\"'})]})]})})}),`\n`,(0,i.jsx)(e.p,{children:\"S\\xF3 a etapa 3 muda. Assinatura (signing), notariza\\xE7\\xE3o (notarization) e stapling n\\xE3o s\\xE3o afetados \\u2014 eles operam sobre a imagem finalizada e n\\xE3o se importam com qual ferramenta a produziu.\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"Duas coisas para observar em um pipeline real. Primeiro, verifique se o conte\\xFAdo preparado (staged) chegou corretamente, por causa do scrubbing silencioso e do comportamento de permiss\\xF5es descritos acima \\u2014 um \",(0,i.jsx)(e.code,{children:\"diff -rq\"}),\" entre \",(0,i.jsx)(e.code,{children:\"$STAGE\"}),\" e o resultado montado \\xE9 um seguro barato. Segundo, se o seu script atual incorpora um contrato de licen\\xE7a com \",(0,i.jsx)(e.code,{children:\"hdiutil udifrez\"}),\", essa etapa n\\xE3o tem substituto e est\\xE1 descontinuada desde o macOS 12. Continue usando o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" para isso enquanto ele existir e planeje uma alternativa.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"solucionando-problemas-comuns\",children:\"Solucionando Problemas Comuns\"}),`\n`,(0,i.jsx)(e.h3,{id:\"diskutil-image-command-not-found-ou-o-subcomando-n\\xE3o-\\xE9-reconhecido\",children:'\"diskutil image: command not found\" ou o subcomando n\\xE3o \\xE9 reconhecido'}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Problema\"}),\": Voc\\xEA est\\xE1 em uma vers\\xE3o do macOS anterior \\xE0 26, onde o verbo \",(0,i.jsx)(e.code,{children:\"image\"}),\" n\\xE3o existe.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Solu\\xE7\\xE3o\"}),\": Use a verifica\\xE7\\xE3o de capacidade mostrada acima, em vez de presumir. \",(0,i.jsx)(e.code,{children:\"diskutil image --help >/dev/null 2>&1\"}),\" retorna um valor diferente de zero em sistemas que n\\xE3o t\\xEAm o subcomando, o que \\xE9 um branch confi\\xE1vel. N\\xE3o teste \",(0,i.jsx)(e.code,{children:\"sw_vers\"}),\" \\u2014 o que realmente importa \\xE9 a presen\\xE7a do subcomando.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"a-imagem-\\xE9-constru\\xEDda-mas-faltam-arquivos\",children:\"A imagem \\xE9 constru\\xEDda, mas faltam arquivos\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Problema\"}),\": Duas causas prov\\xE1veis. Ou o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" pulou arquivos que n\\xE3o conseguiu ler como seu usu\\xE1rio e n\\xE3o pediu autentica\\xE7\\xE3o, ou o scrubbing sempre ativo removeu itens que o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" teria inclu\\xEDdo.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Solu\\xE7\\xE3o\"}),\": Monte o resultado e rode \",(0,i.jsx)(e.code,{children:\"diff -rq\"}),\" contra o diret\\xF3rio de origem. Se faltam arquivos por causa de propriedade, execute o build com os privil\\xE9gios necess\\xE1rios em vez de esperar um prompt. N\\xE3o confie apenas no c\\xF3digo de sa\\xEDda.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"o-parsing-de-progresso-quebrou-no-ci\",children:\"O parsing de progresso quebrou no CI\"}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Problema\"}),\": O \",(0,i.jsx)(e.code,{children:\"-puppetstrings\"}),\" n\\xE3o tem equivalente no \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\", ent\\xE3o scripts que faziam parsing do progresso leg\\xEDvel por m\\xE1quina do \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" n\\xE3o t\\xEAm mais nada para ler.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Solu\\xE7\\xE3o\"}),\": Use \",(0,i.jsx)(e.code,{children:\"--plist\"}),\" para o resultado estruturado e trate o progresso como indispon\\xEDvel. Se o seu CI precisa especificamente de progresso, manter o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" para essa etapa \\xE9 leg\\xEDtimo \\u2014 ele est\\xE1 descontinuado, n\\xE3o removido, e n\\xE3o h\\xE1 data de remo\\xE7\\xE3o anunciada.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"n\\xE3o-consigo-dar-detach--resource-busy\",children:'N\\xE3o consigo dar detach \\u2014 \"resource busy\"'}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Problema\"}),\": Algo ainda est\\xE1 com o volume aberto. Isso se comporta como sempre se comportou.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Solu\\xE7\\xE3o\"}),\": \",(0,i.jsx)(e.code,{children:\"lsof +D /Volumes/YourVolume\"}),\" para encontrar quem est\\xE1 segurando o volume, depois \",(0,i.jsx)(e.code,{children:\"diskutil eject\"}),\". A indexa\\xE7\\xE3o do Spotlight e scanners de antiv\\xEDrus s\\xE3o culpados frequentes; montar com \",(0,i.jsx)(e.code,{children:\"--nobrowse\"}),\" evita parte disso mantendo o volume fora do Finder.\"]}),`\n`,(0,i.jsxs)(e.h3,{id:\"um-dmg-com-contrato-de-licen\\xE7a-n\\xE3o-\\xE9-mais-constru\\xEDdo\",children:[\"Um \",(0,i.jsx)(e.code,{children:\".dmg\"}),\" com contrato de licen\\xE7a n\\xE3o \\xE9 mais constru\\xEDdo\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Problema\"}),\": O mecanismo de contrato de licen\\xE7a depende do \",(0,i.jsx)(e.code,{children:\"hdiutil udifrez\"}),\", que a Apple descontinuou l\\xE1 no macOS 12 e que n\\xE3o tem correspondente no \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\".\"]}),`\n`,(0,i.jsxs)(e.p,{children:[(0,i.jsx)(e.strong,{children:\"Solu\\xE7\\xE3o\"}),\": N\\xE3o h\\xE1 caminho de substitui\\xE7\\xE3o. Continue usando o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" para essa etapa enquanto ele existir, e planeje um m\\xE9todo de distribui\\xE7\\xE3o que n\\xE3o dependa de um contrato incorporado. Isso est\\xE1 avisado h\\xE1 quatro anos, o que vale a pena saber se voc\\xEA s\\xF3 est\\xE1 descobrindo isso agora.\"]}),`\n`,(0,i.jsx)(e.h2,{id:\"perguntas-frequentes\",children:\"Perguntas Frequentes\"}),`\n`,(0,i.jsx)(e.h3,{id:\"o-hdiutil-ainda-funciona-no-macos-27\",children:\"O hdiutil ainda funciona no macOS 27?\"}),`\n`,(0,i.jsx)(e.p,{children:\"Sim. Ele est\\xE1 descontinuado, n\\xE3o removido. Descontinua\\xE7\\xE3o \\xE9 a Apple sinalizando inten\\xE7\\xE3o e iniciando uma contagem regressiva \\u2014 n\\xE3o \\xE9 uma mudan\\xE7a funcional. Nada que funciona hoje para de funcionar quando voc\\xEA instala o macOS 27.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"quando-o-hdiutil-ser\\xE1-de-fato-removido\",children:\"Quando o hdiutil ser\\xE1 de fato removido?\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"A Apple n\\xE3o disse. Olhando para o pr\\xF3prio hist\\xF3rico da man page, o padr\\xE3o da Apple com essa ferramenta tem sido descontinuar um recurso em uma vers\\xE3o e remov\\xEA-lo uma ou mais vers\\xF5es principais depois \\u2014 o \",(0,i.jsx)(e.code,{children:\"internet-enable\"}),\" e o suporte a fork duplo do OS 9 levaram, cada um, pelo menos um ciclo completo. Qualquer pessoa que te d\\xEA uma vers\\xE3o espec\\xEDfica de remo\\xE7\\xE3o est\\xE1 chutando.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"posso-usar-o-diskutil-image-no-macos-26-tahoe\",children:\"Posso usar o diskutil image no macOS 26 Tahoe?\"}),`\n`,(0,i.jsx)(e.p,{children:\"Sim, e esse \\xE9 o fato mais \\xFAtil deste artigo. Verificado no macOS 26.5.2 (build 25F84). Voc\\xEA pode migrar scripts e test\\xE1-los agora, no sistema que j\\xE1 est\\xE1 rodando, em vez de esperar pelo macOS 27.\"}),`\n`,(0,i.jsx)(e.h3,{id:\"o-diskutil-image-\\xE9-um-substituto-completo-do-hdiutil\",children:\"O diskutil image \\xE9 um substituto completo do hdiutil?\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"N\\xE3o, ainda n\\xE3o hoje. \",(0,i.jsx)(e.code,{children:\"verify\"}),\", \",(0,i.jsx)(e.code,{children:\"compact\"}),\", \",(0,i.jsx)(e.code,{children:\"makehybrid\"}),\" e \",(0,i.jsx)(e.code,{children:\"burn\"}),\" n\\xE3o t\\xEAm correspondente, e v\\xE1rias op\\xE7\\xF5es do \",(0,i.jsx)(e.code,{children:\"create\"}),\" para controlar exatamente quais arquivos s\\xE3o inclu\\xEDdos est\\xE3o ausentes. Para o caminho comum \\u2014 criar, converter, anexar, inspecionar, redimensionar, criptografar \\u2014 ele \\xE9 completo.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"por-que-a-apple-fez-isso\",children:\"Por que a Apple fez isso?\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"A Apple n\\xE3o publicou uma justificativa. O que se observa \\xE9 que o \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" \\xE9 mais r\\xE1pido em benchmarks, produz imagens menores, suporta o formato ASIF, mais novo, que o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" n\\xE3o consegue produzir, e apresenta uma superf\\xEDcie de comandos muito menor. Consolidar o tratamento de imagens de disco no \",(0,i.jsx)(e.code,{children:\"diskutil\"}),\", junto com o resto do gerenciamento de armazenamento, \\xE9 uma dire\\xE7\\xE3o coerente. Essa \\xE9 uma leitura das evid\\xEAncias, n\\xE3o uma declara\\xE7\\xE3o da Apple.\"]}),`\n`,(0,i.jsx)(e.h3,{id:\"meu-app-vai-quebrar-se-ele-chamar-o-hdiutil-via-shell\",children:\"Meu app vai quebrar se ele chamar o hdiutil via shell?\"}),`\n`,(0,i.jsx)(e.p,{children:\"N\\xE3o no macOS 27. Planeje migrar de qualquer forma \\u2014 e use a verifica\\xE7\\xE3o de capacidade para que um \\xFAnico caminho de c\\xF3digo cubra os dois casos, o que \\xE9 mais f\\xE1cil do que parece, precisamente porque o novo comando j\\xE1 existe no macOS 26.\"}),`\n`,(0,i.jsx)(e.h2,{id:\"conclus\\xE3o\",children:\"Conclus\\xE3o\"}),`\n`,(0,i.jsxs)(e.p,{children:[\"A manchete \\u2014 um comando do Terminal de 25 anos est\\xE1 sendo aposentado \\u2014 \\xE9 verdadeira, mas enganosa nas duas dire\\xE7\\xF5es. Ela subestima a mudan\\xE7a para quem tem scripts de build que usam \",(0,i.jsx)(e.code,{children:\"verify\"}),\", \",(0,i.jsx)(e.code,{children:\"compact\"}),\", \",(0,i.jsx)(e.code,{children:\"makehybrid\"}),\" ou as op\\xE7\\xF5es refinadas do \",(0,i.jsx)(e.code,{children:\"create\"}),\", porque esses recursos n\\xE3o t\\xEAm caminho \\xE0 frente hoje. E ela superestima a mudan\\xE7a para todo o resto, porque o \",(0,i.jsx)(e.code,{children:\"hdiutil\"}),\" continua funcionando no macOS 27, a Apple n\\xE3o anunciou nenhuma data de remo\\xE7\\xE3o, e a descontinua\\xE7\\xE3o \\xE9 a \\xFAltima etapa de uma redu\\xE7\\xE3o documentada na pr\\xF3pria man page da ferramenta desde o macOS 10.15.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"A coisa genuinamente \\xFAtil de saber \\xE9 que o substituto n\\xE3o est\\xE1 no futuro. O \",(0,i.jsx)(e.code,{children:\"diskutil image\"}),\" est\\xE1 no seu Mac agora mesmo, no macOS 26, com \",(0,i.jsx)(e.code,{children:\"create\"}),\", \",(0,i.jsx)(e.code,{children:\"attach\"}),\", \",(0,i.jsx)(e.code,{children:\"info\"}),\", \",(0,i.jsx)(e.code,{children:\"resize\"}),\" e \",(0,i.jsx)(e.code,{children:\"chpass\"}),\" funcionando. Voc\\xEA pode fazer essa migra\\xE7\\xE3o em uma tarde de ter\\xE7a-feira, no sistema que j\\xE1 tem, verificar com \",(0,i.jsx)(e.code,{children:\"diff -rq\"}),\" e parar de pensar nisso.\"]}),`\n`,(0,i.jsxs)(e.p,{children:[\"S\\xF3 lembre que o \",(0,i.jsx)(e.code,{children:\"detach\"}),\" n\\xE3o est\\xE1 onde voc\\xEA espera.\"]}),`\n`,(0,i.jsx)(e.p,{children:(0,i.jsxs)(e.em,{children:[\"Leitura relacionada: \",(0,i.jsx)(e.a,{href:\"/blog/mac-terminal-mastery-2025-command-line-productivity-guide\",children:\"dom\\xEDnio do Terminal no macOS\"}),\", \",(0,i.jsx)(e.a,{href:\"/blog/ultimate-apple-silicon-development-environment-setup-guide-2025\",children:\"configura\\xE7\\xE3o de ambiente de desenvolvimento para Apple silicon\"}),\", e \",(0,i.jsx)(e.a,{href:\"/blog/encrypted-hfs-plus-dropped-macos-28-convert-apfs-time-machine-guide-2026\",children:\"volumes HFS+ criptografados est\\xE3o sendo descontinuados no macOS 28\"}),\".\"]})})]})}function o(s={}){let{wrapper:e}=s.components||{};return e?(0,i.jsx)(e,{...s,children:(0,i.jsx)(c,{...s})}):c(s)}return E(v);})();\n;return Component;","toc":[{"title":"Principais Conclusões","url":"#principais-conclusões","depth":2},{"title":"Primeiro: Confirme No Seu Próprio Mac","url":"#primeiro-confirme-no-seu-próprio-mac","depth":2},{"title":"Isso Não Surgiu do Nada","url":"#isso-não-surgiu-do-nada","depth":2},{"title":"A Tabela de Migração","url":"#a-tabela-de-migração","depth":2},{"title":"A surpresa do convert","url":"#a-surpresa-do-convert","depth":3},{"title":"A lacuna do detach é real","url":"#a-lacuna-do-detach-é-real","depth":3},{"title":"O Que o diskutil image Faz Melhor","url":"#o-que-o-diskutil-image-faz-melhor","depth":2},{"title":"ASIF, que o hdiutil simplesmente não consegue criar","url":"#asif-que-o-hdiutil-simplesmente-não-consegue-criar","depth":3},{"title":"Ele anexa via HTTP e cria discos RAM diretamente","url":"#ele-anexa-via-http-e-cria-discos-ram-diretamente","depth":3},{"title":"É substancialmente mais rápido","url":"#é-substancialmente-mais-rápido","depth":3},{"title":"O Que Realmente Vai Quebrar Nos Seus Scripts","url":"#o-que-realmente-vai-quebrar-nos-seus-scripts","depth":2},{"title":"1. O -puppetstrings não tem substituto","url":"#1-o--puppetstrings-não-tem-substituto","depth":3},{"title":"2. Várias opções do create simplesmente desapareceram","url":"#2-várias-opções-do-create-simplesmente-desapareceram","depth":3},{"title":"3. O comportamento de scrubbing mudou silenciosamente","url":"#3-o-comportamento-de-scrubbing-mudou-silenciosamente","depth":3},{"title":"4. O tratamento de permissões falha silenciosamente","url":"#4-o-tratamento-de-permissões-falha-silenciosamente","depth":3},{"title":"5. O log é mais enxuto","url":"#5-o-log-é-mais-enxuto","depth":3},{"title":"Como Migrar Sem Quebrar o Suporte ao macOS 26","url":"#como-migrar-sem-quebrar-o-suporte-ao-macos-26","depth":2},{"title":"Um Exemplo Prático, do Início ao Fim","url":"#um-exemplo-prático-do-início-ao-fim","depth":2},{"title":"Imagens Criptografadas","url":"#imagens-criptografadas","depth":2},{"title":"Para Que Servem as Imagens de Disco Hoje","url":"#para-que-servem-as-imagens-de-disco-hoje","depth":2},{"title":"ASIF: O Formato Que Só a Nova Ferramenta Cria","url":"#asif-o-formato-que-só-a-nova-ferramenta-cria","depth":2},{"title":"Onde Isso Se Encaixa em um Pipeline de Distribuição","url":"#onde-isso-se-encaixa-em-um-pipeline-de-distribuição","depth":2},{"title":"Solucionando Problemas Comuns","url":"#solucionando-problemas-comuns","depth":2},{"title":"\"diskutil image: command not found\" ou o subcomando não é reconhecido","url":"#diskutil-image-command-not-found-ou-o-subcomando-não-é-reconhecido","depth":3},{"title":"A imagem é construída, mas faltam arquivos","url":"#a-imagem-é-construída-mas-faltam-arquivos","depth":3},{"title":"O parsing de progresso quebrou no CI","url":"#o-parsing-de-progresso-quebrou-no-ci","depth":3},{"title":"Não consigo dar detach — \"resource busy\"","url":"#não-consigo-dar-detach--resource-busy","depth":3},{"title":"Um .dmg com contrato de licença não é mais construído","url":"#um-dmg-com-contrato-de-licença-não-é-mais-construído","depth":3},{"title":"Perguntas Frequentes","url":"#perguntas-frequentes","depth":2},{"title":"O hdiutil ainda funciona no macOS 27?","url":"#o-hdiutil-ainda-funciona-no-macos-27","depth":3},{"title":"Quando o hdiutil será de fato removido?","url":"#quando-o-hdiutil-será-de-fato-removido","depth":3},{"title":"Posso usar o diskutil image no macOS 26 Tahoe?","url":"#posso-usar-o-diskutil-image-no-macos-26-tahoe","depth":3},{"title":"O diskutil image é um substituto completo do hdiutil?","url":"#o-diskutil-image-é-um-substituto-completo-do-hdiutil","depth":3},{"title":"Por que a Apple fez isso?","url":"#por-que-a-apple-fez-isso","depth":3},{"title":"Meu app vai quebrar se ele chamar o hdiutil via shell?","url":"#meu-app-vai-quebrar-se-ele-chamar-o-hdiutil-via-shell","depth":3},{"title":"Conclusão","url":"#conclusão","depth":2}],"estimatedTime":23}