Olá pessoal Fábio aquita Eu tô bem atrasado com a segunda parte do vídeo da rinha e vai demorar mais um pouco honestamente o tema me deu Burnout então eu resolvi fazer um vídeo antes que não deixa de ser um pré-requisito porque até o final eu vou explicar um pouco mais sobre docker e docker compose mas antes eu quero falar de um problema que vira e mexe eu vejo desenvolvedores tendo perder dados sim acidentes acontecem e tanto o hardware quanto os sistemas operacionais de hoje em dia ajudam muito a não perder dados Mas sério a maioria
de vocês não ia conseguir sobreviver com a tecnologia rudimentar que a gente tinha nos anos 80 e 90 Eu mesmo não lembro mais a última vez que eu perdi dados eu acho um absurdo que programadores ainda percam tempo com esse tipo de problema então eu quero discutir diversas soluções para isso vamos lá um bom programador é mestre da sua máquina nunca o contrário quando o seu hardware perde seus dados e te força para passar perrengue ele se tornou seu mestre e você não é mais que um mero Peão de um objeto inanimado vocês têm que
mostrar quem manda vamos a alguns fatos em termos de sistema operacional tanto faz se usa Mac ou Windows ou Linux nenhum deles é muito melhor que o outro em termos de garantia de dados não é porque escolher usar Mac que Tá magicamente mais protegido do que Windows isso não é verdade faz anos Vejam a minha série sobre armazenamento o ntfs do Windows Tá longe de ser perfeito cheio de problemas ainda mas pro dia a dia você não vai ter mais problemas do que teria com o ext4 no Linux ou apfs no Mac todos têm journaling
por exemplo significa que mesmo que acabe a luz no meio de uma operação de disco seu sistema de arquivos não vai ficar corrompido à toa Vira e Mexe alguns blocos podem se perder mesmo mas as rotinas de manutenção padrão são suficientes para resolver a maioria dos problemas Quando alguém perde dados só existem duas razões porque comprou um HD muito do por Caria ou porque cometeu erro humano mesmo aliás Vira e Mexe alguém faz aquele meme de digitar RM traço RF barra e diz que iniciante não sabe o que isso faz mas parece que quem faz
o meme também não sabe já faz algum tempo que o comando RM não apaga a raiz assim do nada precisa ou digitar barra asterisco com asterisco no final ou usar a opção traço traço no Preserve Rot para realmente apagar a raiz the more you know enfim nenhum sistema operacional vai resolver qualquer um desses problemas hardware por só tem uma solução jogar fora e comprar um de verdade toda vez que tiver tendo problemas frequentes a probabilidade maior é hardware porcaria já a parte do erro humano vamos tentar mitigar um pouco disso hoje alguns meses atrás um
conhecido foi tentar instalar Linux como Dual Boot com Windows no notebook dele não sei qual era a marca nem nada mas ele se ferrou a partição Linux não botava mais agora vem o problema as últimas coisas que ele fez do projeto dele não tinha dado push pro gith Hub ainda e como para Praticamente todo mundo aqui assistindo não tinha backup tudo que eu vou narrar a partir daqui poderia ter sido evitado hoje em dia todo programador usa Git isso é obrigatório mesmo se trabalha numa empresa o mais porcaria possível que por alguma razão do além
ainda não tá usando Git não existe desculpa o projeto não precisa adotar Git para você usar Git gth Hub é opcional Git não marrete esse conceito na sua cabeça não importa se é um projetinho pessoal só na sua máquina faça Git g e comece a fazer Git comit Git não precisa de um servidor externo Digamos que essa empresa hipotética super tosca para onde tá trabalhando não queira usar Git para não ter que pagar gth Hub ou alguma bobagem desse tipo ou usa alguma alternativa obsoleta de 20 anos atrás com a enorme porcaria de um sorce
Safe da vida aí são dois grandes erros imperdoáveis e digamos que você também não queira investir numa conta paga de github portanto não tem como fazer repositórios privados E agora como é que faz eu vou repetir não precisa existir projeto no github para usar Git muitos iniciantes confundem isso Git é uma ferramenta github é um serviço github precisa de Git mas Git não precisa de github qualquer diretório do seu computador pode virar um repositório Git basta digitar Git init dentro e pronto ele cria o subdiretório p Git que é o repositório propriamente dito agora basta
fazer Git AD ponto para adicionar tudo nesse diretório e Git comit traço m como a mensagem descritiva para criar um comite e já era é só isso eu fiz dois vídeos onde eu conto tudo que você deveria saber sobre Git e recomendo que assistam Inclusive eu conto como lá nos primórdios de Git quando realmente ninguém nem sabia que existia eu trabalhei em projetos de clientes que usavam coisas como subversion mas só eu trabalhava com Git e usava um plugin chamado Git svn para integrar os dois se lá em 2007 eu conseguia usar sem nenhum suporte
em 2023 não existe de desculpa aceitável para não usar isso resolve o problema de acidentalmente apagar um arquivo que não deveria ou mudar de ideia num código que acabou de fazer e conseguir voltar para como estava no último comit Digamos que você apagou um arquivo Putz apagou o arquivo errado e agora se você fez a coisa certa queer ficar fazendo pequenos comites o tempo todo ainda deve ter a versão anterior no último comit faça Git status olha ele marcado paraa deleção Basta fazer Git checkout o nome do arquivo e pronto listamos e olha só o
arquivo de volta aqui qualquer programador que use de desculpa Putz eu apaguei o arquivo sem querer e perdi tudo ainda é um iniciante que precisa aprender a usar Git Ah mas eu gosto de primeiro terminar tudo tudo e depois fazer comit e eu digo que você é um idiota eu vou dar um exemplo Digamos que eu fiz um código aqui no arquivo mas eu não terminei e acabou o dia como eu sou disciplinado já vou fazer um guit commit traço M código no meio Putz mas que comit feio Melhor um commit feio agora do que
ter um acidente perder o arquivo agora eu posso desligar o computador e ir dormir acordo no dia seguinte vou continuar editando esse arquivo E aí sim eu finalmente termino agora eu posso fazer um Git commit traço M código final traço traço Amend essa opção Amend vai desfazer o commit anterior e trocar por esse novo commit com a nova mensagem mais bonita e descritiva Rod Git log e olha só aquela mensagem feia com código parcial sumiu e eu tô com o commit bonito agora eu posso fazer push pro servidor se eu quiser dentro de um Brand
faça quantos comits quiser dê push de comits feios e no final faça o squash do Brand antes de criar um pull request se fizer muita questão é uma das formas de lidar com isso o histórico de comits nunca deve ser reescrito no Brand Master ou Main mas no seu Brand onde só você tá trabalhando faça 50 commits Daqui uma semana quando terminar faça squash se a quantidade de comits incomodar daí manda merge para m Master Existem várias nuances no que eu falei não é uma regra escrita em pedra essas Convenções vão variar de equipe para
equipe Mas voltando ao meu ponto inicial Digamos que você não tem um repositório remoto no github tô trabalhando sozinho na minha máquina local e não tem para onde dar push Se der alguma Pan catastrófica na minha máquina eu perco tudo como evitar isso se o projeto que tiver trabalhando for de cliente e você for freelancer por favor pague uma conta no github ou gitlab e passa pus para lá Não desperdice o tempo de todo mundo isso tem nome se chama economia porca porque na hora que alguma coisa der Pan não tem mais como recuperar E
isso dito você é mão de vaca bagarai Ok eu vou te dar a solução mais barata de todos os tempos espet um pend drive ou um HD externo no seu PC do diretório do seu projetinho faça Git Clone traço traço Bear bar midia pendrive projeto.sou vai criar um clone do seu projeto nesse pendrive l Lógico o caminho de onde o pend drive montou vai variar de distro para distro adicione o pen drive como Origin com Git remote AD Origin bar media bar pendrive projeto.arq funcionalidade que precisa entregar hoje o techlead tá lá esperando para finalizar
a parte dele mas aí dá uma daquelas PES no github e ele fica fora do ar algumas horas bem no fim da sexta-feira fodeu né Fica pra segunda então não faça Git Push no pend Drive passa o Pen Drive pro techlead e ele consegue adicionar como remote e dá pull no ripo dele e vai conseguir continuar o trabalho na máquina dele mesmo sem ter github github é uma conveniência mas não é mandatório qualquer coisa pode substituir o que você perde enquanto ele tá fora do ar são as conveniências a integração com continuous integration os P
requests que estavam em aberto você não puxou lista de ichos e coisas assim mas o código em si dá para manipular de vários jeitos diferentes só para concluir essa parte de Git eu vou mais longe no exemplo do github saindo fora do ar o meu exemplo com pendrive assume todo mundo trabalhando presencialmente no mesmo escritório mas que cabeça minha todo mundo tá Home Office hoje né então fodeu mesmo sem github para centralizar se cair todo mundo fica sem conseguir colaborar né só que não eu terminei a minha parte na minha máquina o techlead tá lá
na casa dele precisando puxar o que eu acabei de fazer para continuar não temos gth Hub Como faz simples sabe o clone Bear que eu fiz no tal pendrive vamos modificar ele basta entrar no diretório P Git e começar fazendo Git traço traço Bear update server info e depois mover hooks post update sample para hooks post update e pronto nosso repositório tá pronto para ser integrado a um servidor web qualquer e o mais simples que eu consegui imaginar é o http server que vem no Python com uma única linha de comando Python TR web http
server 8000 e já era temos um servidor web Git para testar basta ir no Barra tmp ou qualquer lugar e fazer Git Clone htp local rost 8000 teste e voa lá eu consigo fazer clone do meu repositório local quem trabalha com vpns como TS k ou er Tier já sabe o que fazer só trocar local host pelo IP da VPN que todo mundo da equipe enxerga e fazer o mesmo que eu descrevi antes o tecl Lead adiciona um remote apontando para esse servidor e consegue dar Git fet do seu Branch e pode continuar trabalhar tranquilamente
enquanto o povo do github fica lá brincando de restartar servidor até voltar para quem não tem VPN outra solução rápida é instalar n grock na sua máquina n grock é o jeito mais simples de criar um túnel de fora para dentro da sua máquina muito muita gente usa para mostrar uma aplicação web rodando na sua máquina local enquanto ainda não tem servidor de testes ou Stage assim um cliente que não tá presente consegue visualizar o andamento do trabalho olhando o que tá rodando no local host da sua máquina entenderam Olha só eu posso rodar ngoc
http 8000 isso vai abrir um túnel no serviço ngoc apontando pro nosso servidorzinho Python local ele nos dá essa URL gigante de forwarding podemos passar ela pro nosso querido tecl Lead na máquina dele ele pode fazer Git Clone e essa URL zona e voa lá olha só da casa dele tá conseguindo puxar os commits da minha máquina entenderam o que aconteceu aqui num dia normal o trabalho iria parar por horas até o github voltar mas sabendo dessas coisas simples e triviais conseguimos continuar trabalhando como se nada tivesse acontecido Esse é o poder do Git e
de saber como juntar componentes simples criar um clone Bear habilitar para ser um servidor via http subir um servidor http simples com Python e abrir um túnel seguro usando enroque mas claro tudo isso assume que você no mínimo usa Git minimamente direito fazendo comits frequentes fazendo backups frequentes só quem já perdeu dado sabe da importância disso todos que dizem que é desnecessário só provam que são virgens e ainda precisam perder alguma coisa importante para aprender vocês assistindo podem aproveitar o que eu falei e evitar ter que passar por esse stress Digamos que não fez nada
disso deu na telha que quer experimentar montar um dual boot na sua máquina pela primeira vez e gosta de viver perigosamente nem deu push dos projetos pro github nem copiou num pen drive nem sequer fez comits tá tudo parcial na sua máquina mas tá seguro você assistiu um tutorial no YouTube seus parças estão te chamando para jogar ging à noite não tem tempo a perder Bora redimensionar o disco criar uma segunda partição de Windows e passar a noite jogando só que aí dá tudo errado tudo na primeira vez sempre vai dar errado aceitem essa máxima
se for a primeira vez de qualquer coisa já comecem sabendo que não vai funcionar de primeira não custa nada espetar um HD externo e copiar as coisas mais importantes para lá mas aá a pressa é inimiga da perfeição mesmo eu não lembro onde eu guardei o HD externo não quero perder tempo procurando vai dar certo confia cola no pai é muito difícil saber exatamente o que acontece em panes se foi algum procedimento errado ou se foi mesmo algum defeito de hardware pra tentar demonstrar algo parecido eu fiz uma máquina virtual com o bunto e um
disco virtual esse disco aparece como dispositivo bdev barv DB de virtual device B já que virtual device a é disco primário tá formatado com ext4 dentro eu coloquei meu projetinho da Rin em reos um ISO de Ubunto e Faça de conta que é um HD normal do seu notebook agora eu vou desmontar com o Mount um dos jeitos de simular um erro de hardware é escrever por cima dos primeiros by no começo do dispositivo lembram dos meus vídeos sobre sistemas de arquivo O que é uma partição é uma estrutura de dados que guarda coisas como
Em qual endereço começa e onde termina uma partição o tipo de sistema de arquivo localização dos blocos esses primeiros bytes formam o que chamamos de super bloco Olha só se eu tentar montar esse dispositivo de novo vai dar erro o Linux não sabe o que fazer porque não tem mais o super bloco os dados em si ainda estão na partição do linguição de B Mas sem o super bloco não dá para saber onde começa e onde termina o qu pensa assim seus arquivos são como casas montadas com LEGO cada LEGO tá enterrado num campo de
futebol se éu HD mas o super bloco tem a localização de cada bloco e as instruções de como remontar sua casa de LEGO sem esse super bloco mesmo achando as peças não sabemos se ainda falta mais blocos ou Como encaixar esses blocos se acontecer um erro como esse onde a partição se recusa a botar ou ou montar e aparecem erros como file System errado opção errada super bloco errado é um Péssimo sinal a primeira coisa que eu recomendo fazer é evitar insistir se usar comandos errados que sobrescrevendo o próprio Ubunto gravar num pen drive daí
passar a fazer boot pelo pend drive a maioria das distrus Linux tem um ambiente de Live CD que buta um ambiente operacional inteiro que inclusive se conecta no seu wi-fi e permite instalar qualquer pacote isso permite baixar quaisquer ferramentas de diagnóstico e Recuperação a partir desse ambiente ele vai achar seu dispositivo Como bar devv bar SDB ou bar devv bar nvm2 ou qualquer coisa assim assistam meus vídeos sobre Linux o tu principalmente porque a instalação dele exige manualmente fazer exatamente esse tipo de operação por isso eu fiz aquele vídeo qualquer um que já instalou um
gentu ou Arc do zero já sabe como fazer isso antes de continuar deixa eu comentar uma coisa por que esse tipo de problema acontece Digamos que não foi um erro humano ssds quebram assim do nada mesmo e sim quebram se for no AliExpress e pesquisar por ssds e ordenar a partir do menor preço sim as primeiras 10 páginas no mínimo É quase 100% de chance de vir um tijolo aliás se vier um tijolo pelo menos vai ser mais seguro problema é quando vem um drive mesmo e você confia com seus dados primeiro tem os golpes
mais óbvios quando desparafusa e abre dentro não tem uma placa controladora e chips de memória flash não tem um adaptador USB barato para microSD Card chips de SD Card sempre usam componentes mais baratos que SSD eles foram feitos para serem quase descartáveis justamente para uso em câmeras fotográficas ou celulares não foram pensados para uso como HD de notebook não tem banda para isso não tem controlador para isso não tem memória Rand Cash a qualidade da memória nem de flash é muito inferior e por isso são muito mais baratos eu já disse isso antes eu vou
repetir Nunca deixe nada importante num SD Card é comum eles corromperem SD Card deve ser usado única e exclusivamente como armazenamento temporário tempo suficiente para chegar em casa a sua viagem e descarregar os cartões no seu notebook mas os tais ssds baratos de marcas chinesas genéricas contam com a sua burrice ninguém nunca abre a carcaça de um SSD para ver o que tem dentro e eles contam com isso mesmo quando vem com componentes de SSD de verdade eles vendem chips de 500 m como se fosse 1 TB por isso sai pela metade do preço mas
o controlador tá gambiarra mais que 500 MB ele vai começar a sobres escrever os dados do começo como a maioria das pessoas vai só gravando mas não checa na hora se tudo gravou só vai descobrir da pior maneira quando precisar do arquivo tentar acessar e descobrir que eles não tão mais lá ou tão incompletos e corrompidos como evitar isso nunca jamais compre marcas chinesas genéricas desconhecidas compre Samsung crucial Sandisk Western digital Só Marcas reconhecidas de longa data e de lojas com alguma reputação e não um vendedor aleatório desconhecido muitos vão pegar a carcaça de um
Samsung quebrado colocar o tal adaptador USB como SD Card e te revender como se fosse original Samsung só compre em loja de verdade e só compre item novo e lacrado pense em SSD como escova de dente você não quer um usado em quais situações você pode arriscar um SSD mais barato genérico Se for para ser sua biblioteca de Steam por exemplo HD para games aí se perder dados seu HD for mesmo um golpe Pega outro HD barato baixa tudo da Steam de novo mas nunca jamais sob nenhuma circunstância use um HD desses para trabalho ou
mesmo para guardar coisas importantes para você como as fotos da sua família dos seus filhos das suas viagens você vai perder esses dados para sempre obviamente todo mundo concordou com o que eu falei mas tá fazendo exatamente o que eu disse para não fazer não usou Git não fez uma cópia dos seus projetos num pendrive ou HD externo foi querer usar o mesmo H de trabalho para games com do boot E chegamos na situação que ele não buta mais e nem conseguimos mais montar a partição o próximo passo é arranjar um outro HD seja interno
seja externo que tenha mais espaço livre do que o total do HD quebrado Vamos fazer uma cópia bit a bit para garantir que não vão perder mais nada usando o comando lsblk podemos ver os dispositivos de armazenamento conectados aqui nesse exemplo eu tenho barra Dev bar VBA que é a partição funcionando do meu Ubunto e o Barra Dev bar vdb que é a partição corrompida e antes de fazer qualquer coisa O certo é usar o comando DD e fazer uma cópia assim sudu DD e f = bar Dev Bar vdb ou f iG bar downloads
bar backup alguma coisa BS = 4 m e o nome de arquivo extensão não importa qualquer coisa serve dependendo do tamanho do seu HD quebrado e velocidade do seu PC isso pode levar horas vai parecer que tá travado deixa quieto lá vai jantar e volta amanhã o lolzinho com os pars essa noite já amou nem insisto Pronto agora temos uma cópia bit a bit do HD nesse arquivo Garanta que não vai perder ele porque se fizer alguma coisa errada Na tentativa de consertar temos uma segunda chance com esse backup coloque no outro HD externo se
quiser garantir mantenha longe de você por enquanto você já causou problemas demais um profissional de recuperação de dados tem muito mais opções do que eu vou mostrar agora eu só vou falar o mais Óbvio porque eu também não sei tudo felizmente muita gente já passou por situação similar e a parte são costuma tb Caps desse super bloco mais de um na real faça o teste no seu próprio sistema no Linux primeiro precisamos instalar o pacote E2 FS progs que contém programas para lidar com o sistema de arquivos como ext2 ou ext4 usando o comando lsblk
podemos listar os dispositivos e com o comando dump E2 FS bar devv bar vdb grap superblock podemos listar os tais super blocos e seus backups como esperado o super bloco primário tá no endereço zero mas veja quantos backups temos um no endereço 32.000 e tanto outro no endereço 98.000 e tanto oito backups um erro catastrófico é quando alguma coisa acontece que corrompe não só os primeiros bytes mas todos os bytes até o último backup É raro Mas pode acontecer especialmente Se você usar errado uma ferramenta como o fdisk e sobrescrever uma nova partição em cima
da antiga o comando damp E2 FS talvez não consiga listar esses super blocos caso a parte partição esteja corrompida tentando no dispositivo barra Dev bar vdb Olha só ele dá erro e não lista nada podemos usar o comando MK E2 FS que normalmente serve para formatar uma partição Mas passando a opção traço n de dry Run só vai simular a execução do Comando sem de fato executar nada lembra o que eu falei antes não queremos que nada escreva nesse disco quebrado o programa não tá consultando a partição com problema só dizendo que se não fosse
um dry Run ele escreveria o super blocos nesses endereços que ele listou para facilitar a recuperação é importante saber qual é o tipo de sistema de arquivos que escolhemos na instalação no caso de Windows é fácil acho que ninguém escolhe nada diferente de ntfs Mac já complica porque antigamente tinha o hpfs Plus que mudou para a PFS a partir do final de 2017 com o Mac OS 10.13 mas muita gente continuou usando o antigo até depois de 2018 já Linux maioria costuma escolher exx T4 tem gente que escolhe ryzer FS ou os novos zfs ou
Butter FS cada um deles tem ferramental diferente o que eu tô mostrando até agora é assumindo que é ex T4 agora podemos tentar recuperar o super bloco A partir dos backups temos que tentar um a um até conseguir talvez nenhum dos backups estejam bons talvez já no primeiro resolva e para fazer essa recuperação usamos o comando fsc ou file System check com opção traço b e o número do backup agora é ir confirmando yes yes yes até o fim e se continuar assim olha só terminou Será que funcionou para saber podemos tentar montar de novo
e sucesso montou de primeira sem nenhum erro se listarmos dentro sim aqui estão nossos arquivos a primeira vista tudo intacto nem sempre as coisas acontecem assim bonitinho lembre-se que eu só simulei um problema num ambiente controlado sob condições ideais de temperatura e pressão é assim que conseguimos recuperar agora o certo agora é não confiar que só porque parece tudo ok parar aqui o certo é plugar outro HD externo e usar um programa como o rsin para fazer uma cópia dos arquivos para outro lugar você quis economizar com HD barato mas tá percebendo que para recuperar
agora vai precisar de vários outros HDs para fazer o backup que não quis fazer antes depois de tudo copiado o certo é formatar essa partição do zero e recopi os arquivos de volta mas o mais certo mesmo é depois de ter esses arquivos copiados para um lugar seguro se livrar desse HD se foi problema de hardware e não erro humano é provável que vai voltar a dar pau de novo Nunca confie num hardware que já te deixou na mão uma vez é lixo joga fora se o cavalo te derruba você sacrifica é o que eu
sempre digo no mínimo troca por um SSD novo de verdade de uma crusa ou Samsung da vida e usa esse HD que deu pau num estojo externo para ser HD USB só para coisas não importantes como games da Steam mas Digamos que o comando fsck não funcionou nenhum dos backups estava bom e não deu para recuperar o super bloco A partir daqui depende da importância dos dados no seu HD faz de conta que é um daqueles casos excepcionais onde sua carteira de Bitcoin Com milhões de dólares tá nesse HD um erro de amador mas já
vimos isso acontecer nesse caso o Melhor é procurar um profissional de recuperação de dados para recuperações mais Hardcore ele vai desmontar o SSD colocar num hardware especializado e para esse tipo de coisa vai fazer muita magia negra dependendo da Pan Talvez consiga recuperar se não for esse caso aí eu recomendo que instale a ferramenta test Disk Eu não tenho tanta experiência nisso então recomendo que procure outros vídeos como esse daqui vou deixar o link abaixo o test Disk propriamente dito tem algumas ferramentas de análise para tentar recuperar as informações da partição reconstruir o que consegui
mas não tem nenhuma garantia que vai funcionar ele não é muito intuitivo de usar por isso recomendo ler bem a documentação e assistir alguns vídeos de exemplo seja por ter corrompido a partição ou seja porque você deletou arquivos acidentalmente o caso é o mesmo os bytes que compõem seu arquivo nunca são deletados de verdade eles ainda tão fisicamente no HD acontece o seguinte o tal sistema de arquivos como é xt4 mantém um índice dizendo arquivo hello.txt tem 20 blocos e os endereços desses blocos são x e y quando pedimos esse arquivo ele vai buscar esses
blocos e nos devolve na ordem certa blocos são conjuntos de bytes depende do sistema de arquivos dizer Quantos bytes tem um bloco por isso eu falo que tudo é um linguição de bytes quando mandamos apagar um arquivo ele não vai bloco A bloco e escreve zero em cima isso até existe alguns sistemas chamam de deleção segura só apaga o registro do arquivo hello.txt desse índice daí perdemos a localização dos blocos mas os blocos em si continuam no HD lembra a metáfora dos Legos enterrados no campo de futebol Eles continuam lá enterrados só jogamos fora um
mapa da localização de cada peça os blocos só só vão se perder se algum novo arquivo escrever por cima deles por isso falamos que se apagou algo por engano a primeiríssima coisa se fazer é desmontar esse HD e tirar da máquina para nenhum processo acabar gravando nada em cima por Acidente e por isso a segunda coisa é fazer um backup bit a bit com a ferramenta DD porque isso vai preservar todos os blocos exatamente como eles estavam até aquele momento Daí podemos fuçar sem perigo de perder alguma coisa porque tem o backup a imagem exata
no pacote do test Disk existe a ferramenta foto haack também já expliquei em outro vídeo a diferença de arquivos texto e arquivos binários e eu expliquei como o sistema operacional sabe que um determinado binário é um executável todo arquivo binário tem nos primeiros bytes um cabeçalho que indica que tipo de arquivo é um JPEG um png um vdeo MP4 um executável elf de Linux um documento de Word todos TM cabeçalhos padrão na metáfora dos Legos é como ir desenterrando peça a peça sabendo que um JP Peg começa com bloco vermelho um Word começa com bloco
azul e aí tentar montar na tentativa e erro uma ferramenta como Photo haack vai tentar por tentativa e erro localizar o começo dos arquivos e os blocos que fazem sentido vi depois eu simulei isso nesse dispositivo bar devv bar vdb Fazendo de Conta que o fsck não conseguiu recuperar rodando o foto haack ele vai pedir para apontar um diretório em outra parte são boa para onde queremos que vá gravando os arquivos que consegui encontrar dependendo da quantidade de arquivos que tinha vai demorar um bocado no final vai surgir um diretório com um monte de arquivos
com nomes esquisitos é o máximo que podemos fazer se não tiver como recuperar o super bloco Olha só tentando abrir alguns desses arquivos de fato o conteúdo faz algum sentido mas claramente alguns estão incompletos e vai vir muito lixo junto nesse ponto a soma que você se fodeu perdeu a maior parte e qualquer resquício que conseguir recuperar já é lucro entendeu se você perdeu o super bloco perdeu os metadados diretórios nome de arquivo tudo nesse estágio a Gente Tá escovando bit mesmo como não chegar nesse ponto Só existe uma maneira faça backup é a recomendação
mais velha da Computação que ninguém segue e eu nem tenho esperança que vocês assistindo vão seguir mas a gente tenta e é a economia mais porca de todas não fazer backup um SSD Sandisk de 1 TB no Mercado Livre custa uns R 300 Sandisk não é a melhor marca mas é 1 vezes melhor que um chinês genérico no fim do Aliexpress um cas USB que transforma S SSD num drive externo não custa uns R 30 uma balada pagar isso todo o sistema operacional já vem com software de backup nem precisa instalar nada use o time
machine do macos use o app de backup que já vem no Windows use um app como Dejavu que já vem no zuun não seja preguiçoso e backup não é só por causo de dar Pan de hardware no seu SSD barato tem caso pior já ouviu falar de ramsonware eu vou contar como eu sou imune a isso se num extremo tá a pessoa que confia todos os seus dados importantes no SSD genérico chinês do fundo da Aliexpress sem nenhum backup do outro lado tô eu eu já mostrei minha solução em outros vídeos e no Insta mas
eu tenho um nas de 60 tb são seis HDs Iron Wolf de nível industrial de 12 tb cada em sistema de redundância onde eu não perco nada mesmo se o HD morrer agora eu uso não só para backup mas faço coisas como edição dos meus vídeos direto dele Claro que não dá para recomendar Isso é uma solução de mais de R 30.000 de investimento na época agora os preços pioraram agora é inviável minha recomendação é um HD externo USB coisa de menos de R 400 e que vai evitar muita dor de cabeça qualquer coisa acima
disso é luxo o mínimo é suficiente faça o que puder só não faça nada eu quero aproveitar para falar de outra coisa que eu não falei na série de armazenamento sobre sistemas de arquivos modernos lembrando sistemas de arqu arquivos como os antigos fat 16 seus derivados como fat 32 ou mesmo xt2 nos primeiros Linux foram pensados numa época onde espaço em disco era muito caro Ram era muito caro CPU era muito caro não havia recursos para desperdiçar era época onde eu falo que a gente escovava bit no sentido que cada bit Extra fazia diferença segurança
e performance são tradeoffs quanto mais segurança quiser menos conveniente as coisas vão ser e mais recursos vamos precisar quando gravamos um arquivo no HD o sistema de arquivos divide os bytes em blocos e grava nos setores do disco esse arquivo fica lá semanas meses às vezes anos sem ser acessado um belo dia você resolve abrir esse arquivo Digamos que é uma planilha como eu sei que um dos setores físicos do disco magnético não falhou flip um bit e alguns dos valores na planilha não tão errados num sistema antigo como fat 16 não tem como saber
se corromper corrompeu e não vamos saber num sistema moderno existe checksums num PFS de Mac ou ntfs de Windows existe checksum no nível do arquivo quando o arquivo é gravado o sistema gera um checksum e grava junto quando pedimos para ler ele pega os blocos e recalcula o checksum para comparar com o que tava guardado se os checksums forem diferentes significa que o arquivo tá corrompido não é bem isso mas se não sabe o que é um checksum pense num dígito verificador essa informação é super importante porque numa planilha com milhares de valores podemos botar
tomando decisões importantes de forma errada por causa de um único bit errado um único bit pode mudar um valor de r$ 1 para milhões por exemplo mas se o sistema avisar que o checksum tá errado sabemos que não podemos confiar nesse arquivo e o que fazemos se você seguiu a recomendação e fez a porcaria de um backup podemos ir nesse backup recuperar esse arquivo em Sistemas de arquivos mais modernos pensados para situações mais parrudas como servidores de arquivo Pense Um Dropbox ou Google Drive da vida com dados de milhões de pessoas existem opções como o
lendário zfs da antiga Sam e o novo Butter FS do Linux eles têm checksums por bloco então conseguimos saber qual bloco dentro do arquivo tá corrompido Mas eles vão mais longe o meu ncn tá em configuração de Raid com múltiplos HDs significa que o mesmo bloco tem Cópias redundantes em mais de um HD e o Butter Fest tem uma rotina que recomenda rodar periodicamente digamos de três em TR meses ou de seis em seis meses chamado scrubbing é um processo pesado que vai rodar em background sem interromper o seu dia a dia e rechear check
a checam de todos os blocos se notar que uma falhou e estivermos em Raid ele vai procurar uma cópia redundante desse bloco A Chance dos dois estarem corrompidos ao mesmo tempo é baixa então podemos usar o bloco intacto para consertar o que corrompeu todo HD falha não importa se é HD mecânico com discos ou chips de flash nand de ssds ou nvms todo do chip Flash tem uma vida útil de quantidade de operações de escrita Depois que passar desse limite estraga e é isso as checagens que eu falei em muitos casos só vão indicar mais
cedo que algo falhou mas sem redundância sem uma segunda cópia intacta não tem como adivinhar o que era o dado original que corrompeu só dá para saber que corrompeu checagens de checksum recuperação de blocos corrompidos Isso gasta Ram gasta CPU não sai de graça servidores de arquivo parrudos como FS precisam de gigab de Ram para serem eficientes e vão usar toda a Ram possível Claro que tem mais vantagens que só isso ntfs eu acho que não tem mas apfs de Mac assim como zfs e Butter FS de Linux tem did application faz de conta que
você é desenvolvedor web e tem diversos projetos de node JS na sua máquina sabe o maldito npm install que gera aqueles diretórios node modules em Todo projeto concorda que na maioria dos projetos vai ter as mesmas bibliotecas dec e os mesmos arquivos então estamos desperdiçando espaço com tanta duplicata e a resposta é sim tá desperdiçando para combater isso existem processos de deduplicação no ntfs de Windows se estiver em Windows Server Ele oferece ferramenta para que caso dois arquivos ten exatamente o mesmo conteúdo binário ele consiga fazer o metadados dos dois apontarem pros mesmos conjuntos de
blocos se forem dois arquivos de 200 m e Originalmente iriam ocupar 400 M mas com d aplicação vai ocupar só 200 m só volta a ocupar mais espaço se decidir modificar o segundo arquivo por exemplo isso é muito útil no cenário de servidor de arquivos da empresa o chefe manda um e-mail com PDF de 100 m para 10 pessoas cada um grava no seu diretório pessoal no servidor iria ocupar 1 GB mas se rodar a ferramenta de deduplicação ele faz as 10 cópias apontarem pros mesmos blocos de um arquivo só economizando 10 vezes o espaço
é o mesmo caso de termos 10 projetos de node de cada um com node modules repetidos rodando algum processo de deduplicação no caso uma ferramenta como open the dup no Linux dá para fazer algo semelhante no ext4 mas nenhuma dessas soluções é ideal os sistemas de arquivo ntfs e ext4 não foram feitos para suportar esse tipo de coisa o sistema de arquivos em si não suporta nada disso daí dependemos de uma ferramenta externa para tentar adicionar essas funcionalidades o ideal é que o próprio sistema de arquivos implemente copy on write e dependente de uma ferramenta
externa copy on WR ou Call é super importante é literalmente os conceitos de um Git só que em nível do sistema de arquivos inteiro funcionando de forma transparente pro usuário no sistema copy on write quando editamos o arquivo que já existe os novos blocos não são gravados por cima dos antigos ele faz o equivalente a um Brand de Git e os novos blocos são gravados nesse Brand parecido com comit isso mantém o arquivo original intacto de cara isso também Evita mais corrupção de dados antigamente num fat 16 da vida onde Estávamos na situação onde não
tinhamos espaços sobrando não tinha outra opção toda a modificação de arquivos precisava gravar os blocos novos em cima dos velhos Mas e se acabasse a luz no meio ia ficar um arquivo corrompido e isso era comum para mitigar esse problema criou-se o conceito de journaling que ntfs no Windows e xt4 no Linux e hpfs Plus no Mac passaram a suportar no fim dos anos 90 super resumido é assim Digamos que eu tenha um arquivo aquele PowerPoint e ele ocupa 10 blocos no disco no sistema de arquivos temos o nome do arquivo e um mapa apontando
para esses 10 blocos Isso faz parte dos Tais metadados de um arquivo agora editamos por cima e essa mudança afetaria os dois últimos blocos esses dois blocos serão gravados no disco e a localização será gravada no Journal o arquivo original ainda tem os 10 blocos originais até esse ponto ao terminar de gravar os dois novos blocos só aí o ntfs vai atualizar o mapa do arquivo e mudar a referência dos dois últimos Blocos para apontar paraa localização dos dois novos mas Digamos que ele começou a mudar a referência do penúltimo bloco e antes de mudar
a referência do último acaba a luz e o sistema rebut quando reiniciar o ntfs checa o Journal e vê que faltou mudar a localização do último bloco como ele tem essa informação no Journal vai conseguir terminar a operação e o PowerPoint não fica corrompido como ficaria antes se ele ficasse em dúvida Faria HB e manteria o arquivo intacto os novos blocos não sobrescrever os blocos antigos esse processo gasta um pouco mais de espaço Mas evita que arquivos fiquem corrompidos espaço Hoje é mais barato então podemos fazer isso copy on WR Vai um passo além depois
que os novos blocos são gravados e registrados no Journal é feito tipo um fork no nível dos met dados imagine o mundo antes de Git se você copiasse um arquivo em cima do outro o que acontece com o original ele se perderia para sempre certo é assim que todo o sistema de arquivos funciona mas o que acontece quando habilita Git num diretório e copia um arquivo em cima do outro vamos testar aqui temos um diretório com Git habilitado E os arquivos já comitados se listar o que tem nesse hello.txt veja hello world eu vou criar
um novo arquivo fora lá no Barra tmp com conteúdo de blá blá blá eu copio o arquivo por cima do meu original Normal meu arquivo original com hello world foi pro saco Como podem ver e se eu mudar de ideia agora entra o Git para te salvar fazendo Git status podemos ver que ele sabe que esse arquivo foi modificado mas ainda não comit não nos comprometemos com ele então podemos fazer Git checkout desse arquivo Olha o conteúdo hello world de volta Git nos permite mudar de ideia e não perder dados ao custo de manter uma
cópia do original em algum lugar ocupando espaço Extra é por isso que Todo projeto deve usar Git podemos mudar de ideia sem preocupação quando estivermos satisfeitos fazemos commit e mesmo assim podemos reverter e até recuperar commits apagados copy on write em sistema de arquivos é a mesma coisa e em Linux que eu saiba só existem dois sistemas de arquivos modernos que suportam isso o zfs e o Butter FS quem usa o bunto tem na instalação a opção de usar zfs e aqui eu já aviso evite é muito fácil fazer besteira em zfs e perder tudo
sem querer zfs é excelente para quem tá montando um servidor de arquivos usando discos como true nas que é o melhor só quem estudou bastante a documentação de zfs deve tentar usar não basta só instalar e acabou precisa de constante manutenção e monitoramento para saber se tá realmente tudo funcionando como deveria para usar no dia a dia no seu notebook eu acho que vai mais atrapalhar do que ajudar isso não quer dizer que zfs é ruim muito pelo contrário é provavelmente o sistema de arquivos mais avançado que existe porém pros propósitos de máquina do dia
a dia de programador é como matar uma mosca com uma bazuca e arriscar atirar a bazuca no seu pé outra coisa todo mundo me pergunta qual distro eu mais gosto eu uso manjaro gnome no meu dia a dia primeiro porque é um ar Linux mais estável ele segura um pouco os pacotes mais novos para testar e garantir que nada vai quebrar mesmo assim alguns updates ainda quebram de vez em quando mas é um bom com compromisso entre ter coisas novas mais rápido e não fica parado a cada novo update agora mais importante o mandaro já
vem pré-configurado para Butter FS logo na instalação é só instalar escolher Butter FS e ele vai se virar e te dar um ambiente estável em vez de mostrar mandaro eu vou mostrar o bunto 23 que acabou de lançar todo o trabalho de configuração que eu vou mostrar agora não precisa fazend no mandaro Começando na instalação todo mundo escolhe aqui a primeira opção que vai instalar este T4 igual toda outra distro mas agora ela tem essa segunda opção com o zfs que é experimental ainda e de novo não teste numa máquina de trabalho teste numa máquina
virtual para aprender tudo primeiro caso queira mesmo adotar zfs em vez disso vamos nessa terceira opção e particionar o disco manualmente eu não vou explicar cada detalhe vamos assumir que você tá num PC moderno dos últimos 10 anos provavelmente vem com modo legado na Bios desligado já suportando boot com EFI Falando nisso não deixe de assistir meu vídeo que explica como o boot de Linux funciona enfim vamos primeiro criar uma partição EFI que a BIOS vai procurar primeiro uns 200 MB deve ser suficiente deixa 500 se quiser garantir depois Precisamos de uma segunda partição com
o sistema de arquivos legado fácil da bios l em Windows costuma ser fat 32 mas aqui podemos escolher o antigo ext2 mesmo eu deixo 500 m mas de novo para garantir pro Futuro caso a Kernel cresça de tamanho deixe 1 GB espaço é barato agora usamos o resto do espaço pra partição primária com Butter Fest e montando o Rot nela se for um notebook sempre recomendo criar uma partição encriptada com Lux ou no mínimo ter o subvolume de home encriptado com Lux eu não vou explicar nada disso aqui porque é um saco de configurar então
pesquisem no wik do Arc sobre isso Butter fesco funciona mais ou menos como um lvm um gerenciador de volumes Lógico ele começa como um pull de subvolumes e por default vai criar um subvolume chamado @ onde vai montar o barra que é o root e outro @home onde vai montar o Barra home novamente pesquise sobre lvm e volumes lógicos antigamente uma boa prática era separar duas partições uma pra Rot Onde fica o sistema operacional e outra pra home daí Montamos essa partição como barra home o problema de usar partições é que eles têm tamanho fixo
uma vez definido não tem Como redimensionar fácil é como no Windows onde você particiona C2 pontos e D2 pontos mas com volumes lógicos podemos redimensionar on the fly sem qualquer problema e Butter FS Vai um passo além subvolume ser em propósito parecido de volumes lógicos mas nem precisamos nos preocupar em redimensionar eles são dinâmicos é muito fácil instalar distros Linux hoje em dia só não instala quem tem muita preguiça ou tem um hardware muito mas muito ruim quando Linux não identifica hardware só tem duas opções ou ele é muito ruim ou é muito novo ou
recém-lançado se você não comprou um note saiu esse ano não tem desculpa é o hardware que é ruim porque Drivers para Linux são atualizados constantemente se tiver em dúvida no notebook e tiver a oportunidade de experimentar antes de comprar leve um pen drive com o mandar oou bunto da vida e faça boot pelo pend drive veja se ele consegue identificar tudo wi-fi Bluetooth áudio placa de vídeo é o melhor teste que pode fazer se alguma coisa não for detectada desista desse modelo vai te dar mais trabalho do que compensa Pronto agora vamos l está o
arquivo bar etc barfs Tab que o bunto criou Super simples dispositivos de armazenamento são identificados por um uuid abrindo o terminal basta digitar lsblk trç f e vai ter uma coluna com uuid o arquivo bar etc barfs Tab define quais dispositivos vão montar onde durante o boot por exemplo o dispositivo de uuid que começa com ed 022 vai montar como root barra olha na listagem é o dispositivo de barra Dev bar vda 3 o Barra Dev bar vda 2 de uid que começa com 294 C8 monta como barra boot a graça começa quando vemos o
ponto de montagem de barra home o bunto pelo menos separou corretamente um subvolume de Butter FS chamado @home é uma boa prática mas tem alguns problemas do jeito que tá aqui não podemos ativar snapshots porque seu espaço em disco vai desaparecer rapidamente snapshots são possíveis por causa da funcionalidade de Copy on do Butter Fest que eu expliquei antes copy on write funciona mais ou menos como brants num Git lembra que eu mostrei que o Git consegue manter o arquivo original sem perder o conteúdo mesmo eu gravando outro por cima para fazer isso obviamente precisa manter
o conteúdo original gravado em algum lugar certo tá gastando algum espaço Extra diretórios do Linux Como barvar bar cche barvar barlog barvar bar tmp tão em operação o tempo todo mesma coisa Bar tmp ou arquivo de Swap se ficar mantendo versão V deles em SnapShot o espaço livre do seu sistema vai acabar muito rápido sem você entender porquê para resolver é assim Abra o terminal e faça sudu cttr + C barvar barlog isso é Change attribute estamos mudando o atributo do diretório para dizer pro Butter Fest não considerar arquivos nesse diretório para SnapShot esse Change
attribute só vai afetar novos arquivos criados não os antigos que já existem sempre se lembrem disso mas como acabamos de instalar acho que só isso deve ser suficiente agora vamos instalar o time shift é um programa gráfico para fazer snapshots periódicos do sistema para iniciantes vai ser mais fácil do que lembrar os comandos por terminal Basta fazer appt install time shift ou Y tros time shift no ar manjaro logo que abrir ele vai oferecer para configurar para você mesmo se não tiver usando Butter FS a alternativa é usar rsnc Caso esteja usando ext4 rsn é
um programa para para sincronizar dois diretórios equivalente no Windows é o novo Robocop ou o antigo xcope o jeito Força Bruta sem a ajuda do sistema de arquivos para ter um backup local é fazendo sincronização de diretórios o problema é óbvio vai ocupar espaço paraa no seu sistema porque periodicamente vai duplicar Tudo sim se algo der errado e apagar algum arquivo que não deveria vai ter uma cópia com a funcionalidade de Copy on right e snapshots do Butter FS temos a mesma coisa mas sem duplicar nenhum arquivo e sem gastar mais espaço do que realmente
precisa no mesmo HD tá complicado de entender Olha só eu vou baixar um arquivo qualquer aqui escolhi a ISO do Ubunto acelerando e pronto baixado agora eu vou no time shift e crio um SnapShot manualmente com o time shift configurado eu posso escolher para fazer snapshots de h e hora e guardar X snapshots por hora Y snapshots por dias e por semana e assim por diante depois dei uma fuçada mas eu criei uma um para mostrar agora isso não é shots são baratos pode fazer toda hora não importa se você tem 1000 arquivos ou 1
milhão de arquivos diferente de R5 o tempo de criação de snapshots é quase instantâneo porque ele não tá duplicando nenhum byte só metadados simulando um acidente Ups apaguei essa ISO que eu acabei de baixar Que droga vou ter que esperar um tempão para baixar de novo ou não vamos no time shift eu posso Navegar pelos arquivos do SnapShot Olha Só se formos na pasta de downloads a ISO tá lá pronto só copiar de volta pra pasta de downloads corrente e tá na mão arquivo recuperado não ficou claro eu vou dar outro exemplo mas para isso
precisamos terminar de configurar o timeshift de novo siga o artigo que eu deixei linkado abaixo diferente do mandaro que já me dá isso automaticamente no Ubunto precisamos manualmente instalar o Grub Butter FS a partir do código fonte primeiro precisa instalar os pacotes build Essential para termos compilador e o Git daí fazemos clone do repositório e make install também precisamos instalar o pacote inotify Tools e editar a configuração do Gru Butter FS com System Edit full Gru buttery fsd e trocar a opção barra p snapshots por traço traço timeshift ao pronto agora é só iniciar o
serviço e habilitar para iniciar automaticamente depois do boot e finalmente mais um programa que precisamos instalar a partir do código fonte o time shift Auto Snap mesma coisa só fazer clone do repositório e e rodar make Stall dentro o que tudo isso faz se ainda não passou por isso é só uma questão de tempo sabe quando estamos no meio do dia e pensamos Ah vou fazer uma atualização no sistema APT update daí appt upgrade rebut o computador e pau não buta mais e vai ser justo naquele dia que você tá sem nenhum pend drive por
perto daí não consegue botar no Live CD você tá de home office e decidiu ir trabalhar do Starbucks não tem nenhum amigo com computador por perto para baixar isso para você acabou sua tarde vai ter que voltar paraa casa achar um pen drive baixar a ISO e gastar um tempo no stack overflow tentando voltar a uma Kernel antiga para botar de volta na sua máquina quem nunca E se eu disser que nunca mais vai precisar fazer isso vamos simular de novo o time shift já tá configurado para fazer snapshots periódicos com isso caso um dia
lembre Putz eu queria aquele arquivo que apaguei mês passado e achei que não fosse precisar meu HD de backup tá em casa e agora sem problemas só pegar o Snapshot do mês passado que tá local na sua máquina mas e na situação onde fizer um upt upgrade isso quebrar seu sistema sem problema também aquele pacote time shift aut Snap vai criar um SnapShot automático antes de todo APT upgrade daí aquele pacote Gru Butter FS vai listar esse snapshots no menu de boot do Gru ups o bunto por padrão não mostra o menu do Grub Mas
isso é fácil só editar o arquivo bar etc bar defa bar Grub e mudar a S Grou timeout Style de Hidden para menu e a opção Gru time out de zero para uns 5 ou 10 segundos para atualizar só rodar update Grou vamos ver como funciona para simular Vamos criar mais um SnapShot temporário chamado teste no time shift como é um SnapShot manual eu vou rodar update Grub manualmente mas num APT upgrade não precisaria agora eu vou abrir a loja do Ubunto e instalar alguns programas vamos instalar aqui o Gimp Vai demorar um bocado acelerando
a agora instalamos o discord de novo vamos acelerar pronto podemos checar no menu e estão aqui Gimp e discord faz de conta que eu instalei um monte de coisa mas no final eu mudei de ideia queria desinstalar tudo e voltar como tava antes como que faz fácil só rebootar agora aparece o menu do Gru aqui no boot e tem essa nova opção e olha só os snapshots que estávamos vendo no time shift estão vendo a descrição que eu tinha feito antes teste basta escolher esse ou o SnapShot anterior entenderam eu posso botar direto em um
SnapShot esperamos iniciar e olha só Cadê o Gimp Cadê o discord como o nome diz time shift ele fez um shift no tempo Voltamos ao passado exatamente como estava antes de instalar aqueles aplicativos Imagine que em vez de Gimp ou discord fosse um upt upgrade e veio uma Kernel quebrada que o boot basta rebotar escolher o SnapShot anterior e pronto vai ser como se nada tivesse acontecido abrindo o time Shift para tornar ISO permanente eu posso fazer um restore do SnapShot antigo para passar a ser meu sistema corrente só isso entenderam com o time shift
temos um backup local que ocupa muito pouco espaço e com isso qualquer acidente pode ser facilmente recuperado sem precisar de HD externo sem precisar esperar copiar tudo de backup nem nada muito menos sem instalar tudo do zero é instantâneo claro isso é uma conveniência Pense como sendo sua primeira barreira de defesa isso não substitui um backup externo o time shift de Butter FS para funcionar depende que seu SSD esteja funcionando perfeitamente se o SSD em si der pau como eu mostrei no começo do vídeo isso não vai te salvar aí só um backup externo o
que eu tô recomendando é ter as três coisas que mostrei até agora se disciplinar a usar Git em Todo projeto pessoal ou de trabalho daí ter Butter FS time Shift para consertar acidentes rápidos e um backup externo para evitar catástrofes mais sérias são três níveis de segurança de dados para te dar da Paz de espírito e para finalizar tem um detalhe importante no caso de Butter Fest aqui tem a ver um pouco com a rinha de backend de novo durante toda a minha exploração dos projetos dos participantes eu fiquei rodando docker compose de cada projeto
eu já fiz um vídeo explicando containers e docker em particular não deixem de assistir mas vamos entender o meu problema de dentro do projeto de qualquer um dos participantes vamos rodar docker compose up lendo o arquivo docker compose.com.br exemplo ninex posts de onde vem esses aplicativos o docker vai baixar a imagem do docker.io é isso que significa esses pools uma imagem não é um único arquivo é um conjunto de arquivos binários que chamamos de overlays Pense como se fossem commits de Git mas comits binários Esses overlays são unificados no único sistema de arquivos usando o
Union file System ou UFS se rodar o comando Mount olha só aqui no fim vários pontos de montagem o usando overlays Rode o comando docker image Ls e temos a listagem das imagens baixadas e geradas localmente a imagem do projeto em node JS aqui tá ocupando 220 MB o innex tá ocupando quase 200 MB o postgis mais de 400 só esse projeto para rodar precisou gastar quase 1 GB aqui no meu HD onde ficam esses arquivos de overlay dentro do diretório barvar barli bar docker bar overlay 2 podemos listar com o sudu e Temos vários
os diretórios com o xad 256 de cada camada da imagem agora Experimente testar docker composto de uns 50 projetos coisas como posts e endex se forem da mesma versão vão ser reusados mas cada imagem de aplicação custa na faixa de 200 m para cima então 50 x 200 vai dar quase 10 GB de tempos em tempos é recomendado rodar um docker System pruny para apagar imagens que não estão sendo usadas mas cuidado se tiver contêiners mesmo desligados associados US uma imagem ela não vai ser apagada e vai ficar sobrando ocupando espaço à toa use o
comando docker container LS traço a para listar e Apague os que não precisa no caso de docker compose quando acabar de testar o projeto faça docker compose Down rmi traço traço ou para limpar contêiners imagens volumes e Network que não for usar mais mas beleza 10 GB para 50 projetos parece pouca coisa o problema é que eu não excluí o diretório do docker da solução de SnapShot e o time shift vai ficar criando snapshots periodicamente pense assim eu fui baixando o docker compose Up um monte de imagens ao longo de mais de uma semana todo
dia o times shift foi fazendo snapshots num dia eu fazia docker compose up no dia seguinte eu fazia docker compose Down achando que tava Apagando tudo mas na verdade eles estavam sendo guardados nos snapshots depois eu resolvo testar o projeto de novo faço um novo docker compose up up vai baixar 1 GB de imagens outra vez só que agora tem 1 GB das imagens antigas no SnapShot de ontem e mais 1 GB duplicado no SnapShot de hoje Butter FS tem a opção de deduplicação mas ele não roda automaticamente por padrão vai duplicar tudo repita isso
em diversos projetos ao longo de duas semanas quando eu terminei de testar tudo escrevi o script do último vídeo gravei editei e meu sistema começou a ficar estranho tudo foi ficando mais lento No começo eu achei que era pau do Microsoft Ed porque ele começou a crashar do nada tentei reinstalar e nada ué que diabo tá acontecendo com o meu sistema Eis que comandos de instalar pacotes como EA começaram a dar problema e aí Caiu a Ficha eu fui checar quanto de espaço eu tinha com df traço h e tava dizendo que estava com 100%
ocupado na partição primária puts as Malditas imagens de docker eu tentei dar um docker System prune mas nada continua ocupando 100% do disco puts os snapshots as ditas imagens ficaram presas em snapshots do passado eu abri o time shift e apaguei todos os snapshots do passado voltei para verificar o espaço livre e nada continuava ocupando ué que diabos Butter Fest é conservador ele não vai apagar nada a menos que você realmente diga para apagar apagar snapshots não libera o espaço para isso precisa reclamar esse espaço de volta deixa eu demonstrar podemos rodar o comando buttery
FS F System DF barra uma das pequenas desvantagens de usar Butter FS é que ferramentas normais de Linux como o comando DF propriamente dito podem informar valores incorretos no nosso Ubunto de exemplo estamos usando um total de 25 GB isso é somando coisas como metadados do sistema de arquivos e tudo mais os bites dos arquivos em si é esse usage pouco mais de 23 GB ou seja pelo menos 2 GB são só metadados você precisa entender essa diferença tamanho de um arquivo não são só os bytes dentro desse arquivo o nome do arquivo espaço a
informação de Delta da criação também atributos como read only localização no diretório também tudo ocupa espaço e quanto mais avançado é o sistema de arquivos mais espaço vai ocupar de metadados enfim se você não tem noção de quanto um sistema recém-instalado ocupa pode pensar ah 25 GB Ok faz sentido mas lembra que eu fiz alguns testes de snapshots para vocês verem na prática e aquele Gimp e aquele discord eles desapareceram mas os bytes deles continuam no SnapShot antigo Vamos abrir o time shift e apagar todos os snapshots rodando de novo o comando DF do Butter
FS não mudou nada continua indicando 25 GB foi o que aconteceu na minha máquina quando acabou o espaço mesmo Apagando os snapshots continuava indicando falta de espaço precisa manualmente reclamar o espaço de volta para isso usamos o comando buttery FS file System balance start barra Esse comando é bem demorado pode levar mais de hora numa máquina como a minha mas pelo menos podemos continuar usando o sistema em paralelo enfim esperamos acabar e pronto vamos ver de novo o comando DF e olha só caiu de 25 GB para 10 GB tinha 15 GB sendo reservado pelo
Butter FS seja pros snapshots antigos e outras coisas dele e isso numa instalação nova praticamente vazia onde só instalamos dois programas agora imagina no meu caso com dezenas de imagens de docker em SnapShot ocupou meu HD inteiro de 1 TB Pois é foi muito fácil encher 1 TB em poucos dias só de não ter tomado cuidado e como faz para isso não acontecer tem que fazer sudu cttr mais C barvar bar Lib Bar docker ou também sudu chatt + C barvar bar Lib bar Lib virt no caso de est usando Lib virt para máquinas virtuais
e de novo isso só vai se aplicar a arquivos novos O correto é primeiro limpar esses diretórios daí mudar esse atributo acho que o certo não é aplicar esse atributo no diretório todo algumas coisas Talvez você queira snapshots como volumes de docker fique só atento com isso essa dica é muito importante porque se você não entender o funcionamento de snapshots no Butter Fest e começar a usar como máquina de desenvolvimento com certeza vai ter imagens de docker e isso com certeza vai destruir Espaço Livre em poucas semanas você não vai saber o que é nenhum
tutorial de como liberar espaço vai funcionar você não saberia que precisa rebalancear o sistema e no final iria desistir e reinstalar tudo zero de novo no momento em que eu tô escrevendo esse script no meu mandaro se rodar DF ele me diz que tá usando 775 GB do meu nvmi de 1 TB de novo de arquivos mesmo são só 164 GB Bora rodar balance start e tomar café eu deixei uma hora rodando e olha só agora diz que tá usando um total de só 166 GB que faz mais sentido ainda tinha uns snapshots velhos provavelmente
com imagens de docker velhas logo que eu instalei o timeshift eu mostrei que tem como configurar para guardar snapshots só de hoje ou da semana ou até de meses se você tem um bom backup externo isso não é necessário só o do dia ou até o da semana deve ser suficiente quando vê que tá acabando espaço sabendo que tem tudo no backup externo pode apagar todos os snapshots do time shift menos o último daí rodar o rebalanceamento e pronto segurança é um tradeoff com performance e espaço gastamos mais processamento e gastamos mais espaço para garan
anti passasse de espírito Essa é a filosofia e felizmente chegamos num ponto onde o sistema operacional realmente nos ajuda a não perder nada a única coisa que nenhum software consegue fazer é consertar um hardware barato porcaria contanto que o hardware seja bom é quase impossível perder dados hoje em dia e tão importante quanto não perder dados é não perder horas ou dias tentando recuperar seu sistema por causa de uma atualização bugada basta não ter preguiça porque as ferramentas estão à nossa disposição e como eu demonstrei são super fáceis de usar o meu NC sinolog usa
buttery FS também mas em configuração de Raid ele roda scrubbing a cada seis meses e faz checagens de checks Sun para garantir que nenhum erro físico nos HDs me faça perder dados Isso é só para quem escolher ter um nas lembre-se de configurar para rodar scrubbing é essencial mas isso vem desligado por padrão não basta só instalar e achar que vai tudo funcionar por mágica numa distro Linux como o bunt ou manjaro eu tenho o time shift mas no sistema operacional da sinolog ele tem o SnapShot replication que também me permite Navegar por snapshots antigos
e recuperar coisas rapidamente Olha só se der qualquer problema eu consigo ver como eram meus arquivos de 4 meses atrás e eu não sei se perceberam mas esse sistema de snapshots Me dá outra coisa de graça proteção contra ramsomware o que é um ramsomware é um malware que você instala ao abrir um Power powerp ou PDF qualquer que veio de um e-mail desconhecido e na verdade era um programa malicioso é assim que youtuber perde o canal deles clicando em PDF falso que não era um PDF Parem com essa mania de dar duplo clique em tudo
o maware se instala silenciosamente na sua máquina e começa a encriptar seus arquivos pode levar dias e você não vai perceber até precisar abrir um desses arquivos e notar que não abre mais no final vai aparecer uma janela parecida com essa dizendo algo como você se fodeu em amos todos os seus arquivos podemos te dar a chave para desencriptar Mas você vai nos pagar X bitcoins para isso mande para este endereço e daí Te damos a chave e isso realmente acontece e não existe garantia nenhuma de receber essa tal chave mesmo pagando se isso acontecer
com você nunca Pague só aceite que você se fodeu Reze para ter seguido minhas recomendações Ah mas eu tenho backup externo então eu tô seguro não não eu disse que leva dias para esse processo conseguir encriptar todos os seus arquivos durante esse período O que que você fez plugou o HD externo e deixou fazendo backup dos arquivos encriptados por cima dos arquivos bons do backup Agora o seu backup também foi contaminado parte dele tá encriptado perdeu o playboy é menos ruim se tiver usando Google Drive ou Dropbox ou Google Drive da vida porque eles têm
suporte de SnapShot mas eu não confiaria muito nunca precisei usar o deles então não fi o suficiente mas vejam essa minha passa do obsidian no Dropbox que é onde eu edito meus scripts tem essa função de rewind que é voltar para trás eu escolho o dia que eu quero voltar e ele me mostra as últimas atividades daqui eu posso escolher voltar para algum ponto do passado mais ou menos como comits também é meio um saco porque eu não vi uma interface que permite voltar meu Dropbox inteiro eu acho que tem que ir diretória diretória não
tenho muita certeza enfim eu não achei muito intuitivo de usar mais em última instância se não tiver mais para onde recorrer Talvez isso ajude se um ramson encriptar todos os seus arquivos mesmo no Dropbox vai est tudo encriptado mas se tiver rewind de alguns dias para trás pode tentar recuperar isso é OK mas eu não gosto de depender de um serviço que eu não tenho controle por isso essa mesma pasta de Dropbox tá em Butter Fest no meu nas sendo sincronizado com o aplicativo Cloud Sync da sinolog eu tenho os três Google Drive Microsoft onedrive
e Dropbox como backup secundários offsite de alguns dados e o meu nas tem SnapShot de fessa ativado para até 4 meses para trás ou seja isso nunca vai acontecer mas se porventura algum malware conseguir passar por mim e encriptar meus arquivos eu só dou risada eu volto alguns snapshots para trás e mando esse hackerzinho de merda tomar no cu eu não pego maare faz pelo menos uns 20 anos e sempre tenho múltiplos backups de tudo tanto local quanto offsite fora daqui e os arquivos mais antigos que eu realmente não quero perder eu já queimei tudo
em blu-rays Millenium Disc feitos de material inorgânico que nunca oxidam todos guardados no meu cofre vem tentar encriptar meus dados seu hackerzinho a dare you I Double dare you segurança é uma questão de oportunidade quanto mais você pensar que nunca vai acontecer com você maiores as chances de realmente acontecer eu penso o contrário eu sempre penso que eu tô 100% inseguro 100% do tempo e faço toda a estratégia em cima disso segurança funciona em camadas se o plano a falhar at o plano B B se o plano B falhar te o plano C Isso se
chama contingência quem não prepara contingência sempre vai viver dando desculpas e eu odeio desculpas se desculpas funcionassem não precisávamos de polícia por fim um comentário que não cobe antes no vídeo é sobre como eu mantenho o meu mandaro uma recomendação que eu dou é usar muito docker pros seus projetos não precisa instalar coisas como my sequel post redis nem nada disso use tudo com docker compose primeiro porque isso garante que estamos rodando a versão certa de cada coisa para cada projeto segundo porque menos pacotes instalados na sua máquina que o mandaro vai precisar ficar atualizando
quanto mais pacotes instalar maiores as chances de algum upgrade quebrar alguma coisa pelo mesmo motivo tudo que é aplicativo como discord Zoom o próprio browser Ed que eu uso Firefox e muito mais eu preferi instalar via flat pack flat pack são contêiners tipo um docker Light e dá para usar coisas como flat Seal para garantir que nenhum aplicativo tem mais permissões e acessos do que deveria podemos fechar um discord para não conseguir enxergar nada dos seus arquivos só deixar ele ver a pasta de downloads por exemplo depois veja esse vídeo explicando sobre flat ce e
eu sei que vai aparecer o povo do nyx os nos comentários mas eu não pretendo usar e nem preciso meu sistema é super estável eu raramente tenho problemas porque eu instalo o mínimo possível para projetos tá tudo em docker aplicativos tudo em flatpack ou Snap e coisas mais arris escadas como games ou meus experimentos com llms e ias estão tudo em máquinas virtuais com kmuk AVM como eu mostrei nesse outro vídeo fazendo tudo que eu mostrei nesse vídeo eu não precisei reinstalar meu sistema nenhuma vez e eu nunca perdi nem dados e nem tempo qualquer
besteira que eu faço o times shift me salva qualquer besteira maior os backups do meu nas me salvam recapitulando sempre sempre inicia um repositório Git local do seu projeto Independente de ter no github ou não sempre tenha no mínimo um HD externo USB da vida um pouco maior do que o HD do seu PC e configure o app de backup que já vem no seu sistema operacional não precisa de nada super Fancy nem nada só habilita qualquer backup é melhor que nenhum backup e finalmente se quiser aprender mais de Linux e usar o kad mais
novo instale manjaro com suporte a Butter FS e configure o time shift como eu expliquei Isso vai tornar você quase Invencível é praticamente um super poder se ficar com dúvidas mandem nos comentários abaixo se curtiram o vídeo deix o joinha assinem o canal E compartilhe o vídeo com seus amigos a gente se vê até mais que o pariu quem que anda com uma moto imbecil dessa que o pariu tem que ser uma anta para ter uma moto dessa uma conta paga de tá que pariu como enorme porcaria de um sorce Safe da vida aí são
Alô igual bar Fácil São identificados por o bar que pariu vai tomar no seu cu filho do uma os comandos com terminal terminal eu vou rodar upgrade que pariu