Repository navigation
Etap 2: jeden układ (maszyna Lima + SMB), usunięty układ z obrazem dysku - #33
Merged
Merged
Conversation
…isk-image layout macOS 27 refuses a disk image as a new Time Machine destination, so the rclone mount on the Mac and the image in /Volumes/CloudMachine are gone: DriveBufferService, BackupImageService, ImageProbe, AttachStall, MountRestart, OrphanMount, InstallationTraces, BufferGuardService, ShutdownPrep, FuseInstaller, BufferReadiness, UploadDrain, OpenPortAlert, CMLock, the POC harnesses, the gdrive-buffer/gdrive-attach/buffer-guard agents and the commands that drove them. - install-launchd installs app, backup-health, vm-start and vm-guard; the retired agents are booted out and their plists deleted on launch, by install-launchd and by backup-health; leftovers are only logged. - backup-health judges the machine (Lima state, services, upload queue, free space, punchfs descriptors, the SMB destination) and the date of the last completed backup. - prepare-shutdown stops the backup, drains the upload for a while and stops the machine cleanly. - The app shows the machine and walks through install-rclone, configure-remote, brew install lima, vm-setup, tmutil setdestination (password masked on screen) and vm-prepare-bundle. - vm/cmsmb.yaml forwards no ports: rclone's password-less remote control answered on the Mac's localhost; vm-status and the watchdog report it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AU1MhxJW1e9oTB2XvjX8WT
vm-status, backup-health and the app now show and check the SMB shaper; it was installed by the template but missing from VMLayout.services. Checked against the live machine after its restart (all five active). The live machine also got the template's portForwards ignore rule: before it, limactl published rclone's rc (127.0.0.1:5572, no auth) on the Mac's localhost; after a restart the port is closed on the Mac and still answers inside the machine. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AU1MhxJW1e9oTB2XvjX8WT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nałożone na #32 (baza
feat/vm-samba-time-machine), więc diff pokazuje tylko etap 2.macOS 27 nie przyjmuje obrazu dysku jako nowego celu Time Machine, więc stary układ (montowanie rclone przez FUSE-T na Macu, sparsebundle w
/Volumes/CloudMachine) jest martwy. Zostaje jeden: maszynacmsmb(Lima), Samba, punchfs, rclone w maszynie, celsmb://tm@<adres>/CloudMachine.Bilans: +2563 / −11458 linii (100 plików).
Usunięte
DriveBufferService,BackupImageService,ImageProbe,AttachStall,MountRestart,OrphanMount,InstallationTraces(zknown-image),BufferGuardService,ShutdownPrep(odpinanie obrazu),FuseInstaller,BufferReadiness,UploadDrain,OpenPortAlert,CMLock,EdgeTriggeredLog; zCMActionResultpoladidNotRun/attachTemporarilyUnavailable.mount-drive,create-image,attach-image,detach-image,verify-image,buffer-guard,restart-mount,install-fuse,drive-status(zastąpione przezvm-status).gdrive-buffer,gdrive-attach,buffer-guard; celcloudmachine-poc(harnessy pomiarowe) i ich testy; testy usuniętego kodu.Zmienione
install-launchdinstaluje cztery agenty zlaunchd/:app,backup-health,vm-start,vm-guard(szablony vm przeniesione zlaunchd/vm/);vm-setup --install-agentswoła to samo. Test pilnuje dokładnie tej czwórki i braku etykiet starego układu.AgentRepair.removeRetiredAgents()(przy starcie aplikacji, winstall-launchdi w każdymbackup-health) robibootouti kasuje plistgdrive-buffer,gdrive-attach,buffer-guard(i bardzo starymount), idempotentnie, z logiem. Niczego więcej nie kasuje: do logu trafia lista pozostałości (~/.cloudmachine/cache|drive|fuse|run,rclone.log,known-image, libfuse-t, stary folder obrazu na Drive), z ostrzeżeniem, jeśli coś jest jeszcze zamontowane (tablica montowań przezgetfsstat(MNT_NOWAIT), bez wiszenia na martwym FUSE).backup-health/BackupHealth.evaluate: maszyna (działa / zatrzymana / brak odpowiedzi), usługi (tm-bands-bindmoże byćinactiveprzedvm-prepare-bundle, nigdyfailed), cel TM po URL udziału, kolejkavfs/queue, porzucone pasma, wolne miejsce w maszynie i na Macu, deskryptory punchfs, otwarty port rc. Data ostatniej udanej kopii bez zmian (cel wybierany poLastKnownVolumeName, potemNetworkURL).prepare-shutdown(VMShutdown):tmutil stopbackup, czekanie na opróżnienievfs/queue(domyślnie do 30 min,--wait-minutes), potemlimactl stop. Zaległość nie blokuje zatrzymania: rclone trzyma niewysłane pasma w buforze na dysku maszyny i wysyła je po starcie; czyste wyłączenie gościa chroni zapis w locie, którego zabicie maszyny razem z Makiem nie chroni.TimeMachineStatus: parser blokówdestinationinfo(URL, ID, Quota),control()przeniesione zBufferGuardService.tmutildlaVMGuard.set-limit,vm-statusi karta limitu szukają celu po URL.configure-remotetworzygdrive:CloudMachine/<folder>-tm; ślad instalacji to plik hasła SMB maszyny (zamiast cache rclone); przy wymianie poświadczeń token sprawdzany nabands/w folderze maszyny.vm-statusdostał wiersze z dawnegodrive-status: folder Drive, limit i polecenie kwoty, czujka, agenci, niedostarczony alarm; hasło w URL-ach maskowane.GUI
vfs/queue, wolne w maszynie), „Maszyna” (stancmsmb, usługi, Time Machine), „Stan maszyny i wysyłki” (adres, każda usługa, folder, do wysłania, cache, wolne, pliki punchfs, błędy, przycisk „Uruchom maszynę”), czerwona karta przy otwartym127.0.0.1:5572. Usunięte: dysk/obraz/FUSE-T, rozmiar obrazu, „Sprawdź spójność obrazu”, „Zrestartuj montowanie”.brew install lima(do skopiowania) → „Skonfiguruj maszynę” (vm-setup) / „Uruchom maszynę” → Full Disk Access → agenty →sudo tmutil setdestination …(na ekranie hasło jako••••••, „Kopiuj” daje pełne polecenie; nie trafia do logu ani komunikatu akcji) → po pierwszym obrazie „Przerób obraz” (vm-prepare-bundle).VMShutdown, przycisk startu zatrzymanej maszyny. Styl RenaCodeTheme bez zmian; nowe teksty wL10nPolish+Machine.swift, nieużywane polskie wpisy usunięte.Celowo zostawione
install-rclonei~/.cloudmachine/bin/rclone(OAuth,rclone.confkopiowany do maszyny,rclone size/about),configure-remote,set-limit/MachineBudget,DriveFolder,HealthAlert,WatchdogHeartbeat,AgentRepair,LaunchdInstaller,install-dependencies,UploadState(stany „brak miejsca na Drive” i „dzienny limit” nie są dziś zasilane - log rclone jest w maszynie; opisane w README jako ograniczenie).Bezpieczeństwo (znalezione przy okazji)
Lima domyślnie przekazuje porty localhost gościa na localhost Maca. rclone w maszynie ma
--rc-addr 127.0.0.1:5572 --rc-no-auth, więc na Macu127.0.0.1:5572odpowiada (lsofpokazujelimactlna tym porcie) - każda strona w przeglądarce może wysłać polecenie, łącznie z usunięciem kopii. Szablonvm/cmsmb.yamldostałportForwardszignore: true; istniejąca maszyna potrzebuje tej reguły w~/.lima/cmsmb/lima.yamli restartu (opis wvm/README.md). Do tego czasuvm-status, czujka i aplikacja zgłaszają to jako awarię.Sprawdzone
swift build,swift test(298 testów, 0 błędów),swift format lint --strict --recursive Sources Tests.cloudmachine-agent build-app:Contents/Resourceszawieralaunchd/(4 szablony),vm/(zportForwards) iconfig/.cmsmb, launchd ani Time Machine.🤖 Generated with Claude Code