Skip to content

Instantly share code, notes, and snippets.

View gcr's full-sized avatar

Kimmy gcr

  • Google AI
  • 10:01 (UTC -04:00)
View GitHub Profile

Recovering corrupt files from a failing Raspberry Pi SD card

Yesterday night, my RasPi wouldn’t boot (black screen). It’s an SD card issue: macOS reports I/O timeouts, so something’s clearly going wrong.

Rescue what parts of the filesystem we can

First, we can use ddrescue to gather all of the blocks:

sudo ddrescue -vv -n /dev/rdisk4 sd-card.img sd-card.img.ddrescue-map-2

The default configuration is to read 128 sectors of 512 bytes each per read() call, ad if any fail, to skip 128 sectors (64kb) ahead. This takes all night because each time reads something from a failing part of the card, MacOS takes 30 sec to I/O timeout, and I think this can’t be configured.

THE NORTH STAR

FREDERICK DOUGLASS, M. R. DELANY, Editors

RIGHT IS OF NO SEX - TRUTH IS OF NO COLOR - GOD IS THE FATHER OF US ALL, AND ALL WE ARE BRETHEREN

WILLIAM C. NEIL, Publisher JOHN DICK, Printer


# 🌟 #
jq\
-rn '"ggEDC
grrggEDCarraaFEDbrrr
GGFDErrrEEErEEErEGCDE"|gsub
("\\s";"")|explode|.[]as$note
|"rg.a.bC
.D.EF.G.A.BC"|gsub
("\\s";"")|explode|index
@gcr
gcr / donut.jq.md
Last active October 12, 2022 03:12

donut.c, but it's in jq

Run this in your terminal:

                  jq -nr 'def R(A;B;C
            ):range(A;B;C);def R(A):range
          (A);30as$s|1as$R1|2as$R2|7as$K2|(
        $s*$K2*3/(8*($R1+$R2)))as$K1|def t($A;$B
     ):($A|cos)as$cA|($B|cos)as$cB|($A|sin)as$sA|($B
pico-8 cartridge // http://www.pico-8.com
version 29
__lua__
-- kimmys-treasure-hunt-galaxy.p8
points={
0xfffe.ddfa,0x0009.d8e2,0xfffe.ace5,0x0001.0000,
0x0006.b93d,0xfffa.ab8c,0xfffa.dcf1,0x0001.0000,
0xfffa.5019,0x0007.7bd4,0x0003.69e8,0x0001.0000,
0xfffa.ca0e,0x0007.1a5f,0xfffb.4463,0x0001.0000,
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@gcr
gcr / rapid-image-viewer.rkt
Last active May 25, 2017 15:35
Tool for showing images
#lang racket
;;
;; Displays a directory full of images in rapid succession.
;; Handy for checking annotations or finding irregularities
;; in large-scale datasets.
;;
;; Usage:
;; - racket rapid-image-viewer.rkt [imglist]
;; Will show all of the '*.jpg' files given as lines in `imglist`,
Purchase WeekofPurchase StoreID PriceCH PriceMM DiscCH DiscMM SpecialCH SpecialMM LoyalCH SalePriceMM SalePriceCH PriceDiff Store7 PctDiscMM PctDiscCH ListPriceDiff STORE
1 CH 237 1 1.75 1.99 0 0 0 0 0.5 1.99 1.75 0.24 No 0 0 0.24 1
2 CH 239 1 1.75 1.99 0 0.3 0 1 0.6 1.69 1.75 -0.06 No 0.150754 0 0.24 1
3 CH 245 1 1.86 2.09 0.17 0 0 0 0.68 2.09 1.69 0.4 No 0 0.091398 0.23 1
4 MM 227 1 1.69 1.69 0 0 0 0 0.4 1.69 1.69 0 No 0 0 0 1
5 CH 228 7 1.69 1.69 0 0 0 0 0.956535 1.69 1.69 0 Yes 0 0 0 0
6 CH 230 7 1.69 1.99 0 0 0 1 0.965228 1.99 1.69 0.3 Yes 0 0 0.3 0
7 CH 232 7 1.69 1.99 0 0.4 1 1 0.972182 1.59 1.69 -0.1 Yes 0.201005 0 0.3 0
8 CH 234 7 1.75 1.99 0 0.4 1 0 0.977746 1.59 1.75 -0.16 Yes 0.201005 0 0.24 0
9 CH 235 7 1.75 1.99 0 0.4 0 0 0.982197 1.59 1.75 -0.16 Yes 0.201005 0 0.24 0