Información general sobre los discos y el sistema de archivos
Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
En esta página se ofrece una descripción general del sistema de archivos de Container-Optimized OS y se explica cómo montar y formatear discos.
Sistema de archivos
El diseño del sistema de archivos de la imagen de nodo de Container-Optimized OS se ha optimizado para mejorar la seguridad de los nodos. El espacio del disco de arranque se divide en tres tipos de particiones:
Partición raíz: se monta como de solo lectura.
Particiones con reconocimiento del estado: se pueden escribir y tienen estado.
Particiones sin estado: se pueden escribir, pero el contenido no se conserva al reiniciar.
Cuando uses Container-Optimized OS, ten en cuenta las particiones si ejecutas tus propios servicios que tengan ciertas expectativas sobre el diseño del sistema de archivos fuera de los contenedores.
El sistema de archivos raíz se monta como de solo lectura para proteger la integridad del sistema.
Sin embargo, los directorios principales y /mnt/stateful_partition son persistentes y se pueden escribir.
Trabajar con el sistema de archivos de Container-Optimized OS
La siguiente es una lista de rutas en el sistema de archivos de la imagen de nodo de Container-Optimized OS, junto con sus propiedades y el uso recomendado:
Ruta
Propiedades
Finalidad
/
Solo lectura
Ejecutable
El sistema de archivos raíz está activado como solo lectura para mantener la integridad. El kernel verifica la integridad del sistema de archivos raíz durante el arranque y se niega a arrancar si se producen errores.
/home
/var
editable
No ejecutable
Con reconocimiento del estado
Estas rutas se usan para almacenar datos que se conservan durante la vida útil del disco de arranque. Se montan desde /mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
editable
Ejecutable
Con reconocimiento del estado
Estas rutas son directorios de trabajo de los paquetes de Compute Engine (por ejemplo, el servicio de gestión de cuentas), Docker y Toolbox, respectivamente.
/var/lib/cloud
editable
Ejecutable
Sin reconocimiento del estado
Tmpfs
Esta ruta es el directorio de trabajo del paquete cloud-init.
/etc
editable
Ejecutable
Sin reconocimiento del estado
Tmpfs
Normalmente, contiene tu configuración (por ejemplo, systemd servicios definidos mediante cloud-init).
Es recomendable registrar el estado deseado de tus instancias en cloud-init, ya que cloud-init se aplica cuando se crea una instancia y cuando se reinicia.
/tmp
Editable
No ejecutable
Sin reconocimiento del estado
Tmpfs
Se suele usar como espacio de almacenamiento temporal y no se debe usar para almacenar datos persistentes.
/mnt/disks
editable
Ejecutable
Sin reconocimiento del estado
Tmpfs
Puedes activar discos persistentes en directorios de /mnt/disks.
Los discos se pueden montar creando un subdirectorio en el directorio /mnt/disks. Como /etc/ no tiene estado en Container-Optimized OS, no puedes usar /etc/fstab para hacer un fsck (comprobación de coherencia del sistema de archivos) automáticamente y montar los discos al arrancar. Sin embargo, puedes conseguir lo mismo haciendo esas operaciones desde la sección bootcmd de tu cloud-config.
En el siguiente ejemplo se monta el disco DEVICE_ID
en el directorio /mnt/disks.
Crea un archivo de secuencia de comandos con el siguiente contenido:
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-21 (UTC)."],[[["\u003cp\u003eContainer-Optimized OS uses a file system layout with read-only root, stateful, and stateless partitions to enhance node security.\u003c/p\u003e\n"],["\u003cp\u003eThe root file system is read-only to protect system integrity, but home directories and \u003ccode\u003e/mnt/stateful_partition\u003c/code\u003e are writable and persistent.\u003c/p\u003e\n"],["\u003cp\u003eSpecific paths like \u003ccode\u003e/var/lib/google\u003c/code\u003e, \u003ccode\u003e/var/lib/docker\u003c/code\u003e, and \u003ccode\u003e/var/lib/toolbox\u003c/code\u003e are designated for working directories of certain services, and are stateful.\u003c/p\u003e\n"],["\u003cp\u003ePersistent disks can be attached and mounted under \u003ccode\u003e/mnt/disks\u003c/code\u003e using \u003ccode\u003ecloud-config\u003c/code\u003e scripts, as the \u003ccode\u003e/etc/fstab\u003c/code\u003e method is not available due to the stateless nature of \u003ccode\u003e/etc/\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eYou can use \u003ccode\u003ecloud-init\u003c/code\u003e to handle configuration and mounting of disks on Container-Optimized OS instances, ensuring that configurations are applied on creation and restarts.\u003c/p\u003e\n"]]],[],null,["# Disks and file system overview\n\nThis page provides an overview of the Container-Optimized OS file system\nand describes how to mount and format disks.\n\nFile system\n-----------\n\nThe Container-Optimized OS node image file system layout is optimized to\nenhance node security. The boot disk space is split into three types of\npartitions:\n\n- **Root partition**, which is mounted as read-only.\n- **Stateful partitions**, which are writable and stateful.\n- **Stateless partitions**, which are writable but the contents do not persist across reboots.\n\nWhen using Container-Optimized OS, be aware of the partitioning if you run\nyour own services that have certain expectations about the file system layout\noutside of containers.\n\nThe root file system is mounted as read-only to protect system integrity.\nHowever, home directories and `/mnt/stateful_partition` are persistent and\nwritable.\n\n### Working with the Container-Optimized OS file system\n\n\nThe following is a list of paths in the Container-Optimized OS node image file\nsystem, along with their properties and recommended usage:\n\nMounting and formatting disks\n-----------------------------\n\nYou can attach a persistent disk or create an instance with Local SSDs when using\nContainer-Optimized OS. Follow the instructions on [Formatting and mounting\na persistent disk](/compute/docs/disks/format-mount-disk-linux#format_linux) or\n[Format and mount a local SSD device](/compute/docs/disks/add-local-ssd#formatandmount)\nfor the appropriate use-case.\n\nThe disks can be mounted by creating a subdirectory under `/mnt/disks`\ndirectory. Since `/etc/` is stateless on Container-Optimized OS, you\ncannot use `/etc/fstab` to automatically fsck (file system consistency check)\nand mount the disks on boot. But you can achieve the same by doing those\noperations from the `bootcmd` section in your\n[`cloud-config`](http://cloudinit.readthedocs.io/en/latest/topics/examples.html).\n\nThe following example mounts the disk \u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e\nunder the `/mnt/disks` directory.\n\n1. Create a script file using the following contents:\n\n #cloud-config\n\n bootcmd:\n - fsck.ext4 -tvy /dev/\u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e\n - mkdir -p /mnt/disks/\u003cvar translate=\"no\"\u003eMNT_DIR\u003c/var\u003e\n - mount -t ext4 -o ... /dev/\u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e /mnt/disks/\u003cvar translate=\"no\"\u003eMNT_DIR\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e: the device ID of the disk that you want to format and mount.\n - \u003cvar translate=\"no\"\u003eMNT_DIR\u003c/var\u003e: the directory in which to mount your disk.\n\n Refer to the Linux documentation for a full set of options\n supported by the [`fsck.ext4`](http://man7.org/linux/man-pages/man8/e2fsck.8.html)\n and [`mount`](http://man7.org/linux/man-pages/man8/mount.8.html) commands.\n2. Update the VM metadata to include the script file by using the\n `--metadata-from-file` flag.\n\n To create a VM, use the following command: \n\n gcloud compute instances create \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e \\\n --metadata-from-file user-data=\u003cvar translate=\"no\"\u003eSCRIPT_FILE_NAME\u003c/var\u003e\n\n To update an existing instance, use the following command: \n\n gcloud compute instances add-metadata \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e \\\n --metadata-from-file user-data=\u003cvar translate=\"no\"\u003eSCRIPT_FILE_NAME\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e: the name of your VM instance.\n - \u003cvar translate=\"no\"\u003eSCRIPT_FILE_NAME\u003c/var\u003e: the name of the metadata script file."]]