{"id":15172762,"url":"https://github.com/oxdabit/oxraspbian","last_synced_at":"2026-01-25T11:31:35.346Z","repository":{"id":213577172,"uuid":"733887046","full_name":"OxDAbit/oxraspbian","owner":"OxDAbit","description":"Custom raspbian OS by 0xDA_bit","archived":false,"fork":false,"pushed_at":"2024-05-17T12:44:43.000Z","size":978,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-29T09:42:30.354Z","etag":null,"topics":["debian-bookworm","overlayfs","raspberry-pi","raspberry-pi-3","raspberry-pi-4","raspberry-pi-zero-w","raspberrypi","raspbian","raspbian-os","sfs","squashfs"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OxDAbit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-20T11:02:46.000Z","updated_at":"2024-05-17T12:44:46.000Z","dependencies_parsed_at":"2023-12-21T19:48:04.762Z","dependency_job_id":"1e5c7ba4-8029-4323-9680-96de7a53f366","html_url":"https://github.com/OxDAbit/oxraspbian","commit_stats":{"total_commits":15,"total_committers":1,"mean_commits":15.0,"dds":0.0,"last_synced_commit":"512f10b966f8ecad6ba88ecadd5a7ebff221afe6"},"previous_names":["oxdabit/oxraspbian"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OxDAbit%2Foxraspbian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OxDAbit%2Foxraspbian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OxDAbit%2Foxraspbian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OxDAbit%2Foxraspbian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OxDAbit","download_url":"https://codeload.github.com/OxDAbit/oxraspbian/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239686089,"owners_count":19680453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debian-bookworm","overlayfs","raspberry-pi","raspberry-pi-3","raspberry-pi-4","raspberry-pi-zero-w","raspberrypi","raspbian","raspbian-os","sfs","squashfs"],"created_at":"2024-09-27T10:04:16.321Z","updated_at":"2025-12-16T10:30:21.835Z","avatar_url":"https://github.com/OxDAbit.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oxraspbian\n\n## Qué es `oxraspbian`?\n\n`oxraspbian` es la distribución debian oficial de **Rasbperry Pi** dónde se monta un _file system_ custom, mediante `overlayFS` que habilita a la **Raspberry Pi** para trabajar en modo \"kiosko\".\n\nA nivel de disco, el dispositivo se configura con 3 particiones:\n\n1. `boot`. Corresponde a la partición de arranque del dispositivo\n2. `rootfs`. Corresponde a la partición del sistema operativo (partición no persistente)\n3. `oxdata`. Corresponde a la partición de datos (partición persistente)\n\nEn cada arranque, la **Raspberry** montará el `rootfs`, vía `overlayFS`, con los archivos `squashfs` que estarán ubicados en el _path_ `/lib/live/squashfs/`. De esta forma, una vez iniciado el sistema, toda la información que se cree, borre o modifique durante la sesión, no se perderá en el próximo arranque, puesto que el sistema no estará escribiendo en disco.\n\nCon este _file system_ se pretende alargar la vida del disco para aquellos dispositivos que tenemos montados 24/7\n\n## Montaje `oxraspbian`\n\nGuía con el detalle del montaje del sistema operativo _customizado_ desde cero:\n\n\u003e [!IMPORTANT]\n\u003e Esta guía así como el uso del _script_ `oxsfs.sh` está validada con la distribución **Debian Bookworm**\n\n\u003e [!NOTE]\n\u003e Para esta guía de ejemplo se recurre al uso de una Rapberry Pi 4 con una SSD de 128Gb.\n\n## Grabación imagen en la SSD\n\n1. Descargar la imagen del SO de Raspberry desde la página [web oficial](https://www.raspberrypi.com/software/operating-systems/) (Para esta guía, se utilizará el SO **Raspberry OS Lite 64Gb**)\n2. Descargar el programa para _flashear_ la imagen `Balena Etcher`\n3. Seleccionar la imagen descargada, el volumen dónde se grabará la imagen e iniciar el proceso\n4. Desconectar el disco y volver a conectar al ordenador puesto que al finalizar el proceso de grabación el volumen se desmonta de forma automática\n5. Abrir la partición `bootfs` que se montará en el ordenador al volver a conectar la SSD o la SD y editar el archivo `cmdline.txt` eliminando el último parámetro `init=/usr/lib/raspberrypi-sys-mods/firstboot`\n\n\u003e [!CAUTION]\n\u003e Es muy importante realizar el último paso antes de iniciar por primera vez el dispositivo se , de lo contrario, la partición correspondiente al `rootfs` se extenderá a todo el disco y el _script_ no podrá crear la tercera partición persistente de datos `/oxdata`\n\n## Primer arranque\n\nTras grabar la imagen y arrancar por primera vez el dispositivo, el sistema solicitará que selecciones tú idioma y cambies el usuario por defecto insertando uno nuevo.\n\nTras realizar este paso, el dispositivo ya está preparado para ser configurado vía USB.\n\n## USB Configuración Automática\n\nCon la idea de automatizar todo el proceso de montaje del sistema operativo, se ha creado el _script_ `oxsfs.sh` para que realice las funciones de asistente y se encargue de todo.\n\nPara poder realizar la configuración del sistema desde el USB, se deben seguir los pasos detallados a continuación:\n\n1. Conectar el USB a nuestro ordenador y crear la estructura de carpetas abajo detallada copiando, directamente del repositorio de Github, el contenido de la carpeta [oxusb](https://github.com/OxDAbit/oxraspbian/tree/main/oxusb)\n\n    ```plaintext\n    ├── content                         # Archivos correspondientes a los contenidos de configuración del sistema\n    │   └── oxcpu.conf                  # Archivo de configuración genérico\n    ├── oxoverlay                       # Archivos para la configuración del FS Overlay\n    │   ├── overlayRoot.sh              # Archivo de configuración SFS\n    │   └── overlaySFS.sh               # Archivo de configuración SFS\n    ├── oxsfs                           # SFS container\n    │   └── 01-package.sfs              # Archivo/s SFS que se copiarán tras la configuración del sistema\n    └── oxsfs.sh                        # Script que se encarga de ejecutar la configuración\n    ```\n\n\u003e [!NOTE]\n\u003e Los _scripts_ `overlaySFS.sh`, `overlayRoot.sh` se mantienen actualizados en el repositorio [overlay-Raspbian](https://github.com/OxDAbit/overlay-Raspbian)\n\n2. Abrir el archivo `oxsfs.sh` y modificar las variables globales `wifi_ssid` y `wifi_pswd` para poder establecer la conexión de red correctamente\n3. Conectamos el USB a la **Raspberry Pi**\n4. Conectamos un teclado y una pantalla al dispositivo para poder efecutar la configuración\n5. Nos logamos como usuario `root` y posteriormente creamos una carpeta dónde montar el dispositivo USB:\n\n    ```plaintext\n    sudo -s\n    mkdir /media/oxusb\n    ```\n\n6. Obtenemos la información del USB (en mi caso, llamado `OXUSB`) mediante el comando `blkid` el cual debe devolver una información similiar a la abajo detallada:\n\n    ```plaintext\n    /dev/sdb2: LABEL_FATBOOT=\"OXUSB\" LABEL=\"OXUSB\" UUID=\"3EA3-1A09\" BLOCK_SIZE=\"512\" TYPE=\"vfat\" PARTUUID=\"e2423cef-095d-4ca2-99b0-051dcb9dea81\"\n    ```\n\n7. Montamos el dispositivo USB en la carpeta `/media/oxusb`\n\n    ```plaintext\n    mount /dev/sda2 /media/oxusb/\n    ```\n\n\u003e [!TIP]\n\u003e Podemos comprobar mediante el uso del comando `df /media/oxusb` que el volumen se ha montado correctamente\n\u003e```plaintext\n\u003eFilesystem     1K-blocks  Used Available Use% Mounted on\n\u003e/dev/sdb2        7411556  1120   7410436   1% /media/oxusb\n\u003e```\n\n8. Por último, llega el momento de ejecutar el _script_, el cual tiene 2 tipos de ejecución:\n    1. Sin parámetro de configuración. El _script_ realizará la configuración del dispositivo sin habilitar la conexión WiFi (el dispositivo se conectará por ETH):\n\n        ```bash\n        cd /media/oxusb\n        chmod +x oxsfs.sh\n        ./oxsfs.sh\n        ```\n\n    2. Con parámetro de configuración. El _script_ realizará la configuración del dispositivo hablitando la conexión WiFi (el dispositivo se podrá conectar por WiFi y por ETH) detallando el _ssid_ y _password_ informados en las variables globales:\n    \n        ```bash\n        cd /media/oxusb\n        chmod +x oxsfs.sh\n        ./oxsfs.sh wifi\n        ```\n\n\u003e [!NOTE]\n\u003e El funcionamiento del _script_ se detalla en el documento [Changelog oxsfs](/docs/changelog%20oxsfs.md)\n\n9. Tras finalizar la ejecución del _script_ el dispositivo se reiniciará para aplicar los cambios y arrancará con el sistema SFS deshabilitado.\n\n## Gestión modo de arranque `overlayFS`\n\nPara habilitar/deshabiltar el `overlayFS` así como gestionar (crear/borrar/modificar) los archivos SFS se ha documentado toda la información en el documento [overlayFS.md](/docs/overlayFS.md)\n\n## Contacto\n\n- Twitter. [**@0xDA_bit**](https://twitter.com/0xDA_bit)\n- Github. [**OxDAbit**](https://github.com/OxDAbit)\n- Mail. **\u003coxdabit@protonmail.com\u003e**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxdabit%2Foxraspbian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxdabit%2Foxraspbian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxdabit%2Foxraspbian/lists"}