Después de actualizar MacOS a Big Sur, descubrí que el archivo no se podía escribir en el disco usando el módulo del sistema operativo de Python3. Se informará de un OSError: [Errno 30] Read-only file system
error.
1. Error de análisis
Dado que hay un error, ¡analizaremos el error!
Después de comprender, después de Mac OS 10.11, Apple introdujo una medida de protección del kernel SIP
(Protección de la integridad del sistema), también conocida como el mecanismo del modo Rootless , para mejorar la seguridad del entorno del sistema .
En SIP
caso de que el mecanismo, el sistema de bloqueo por defecto /system
, /sbin
, /usr
tres directorios, incluso si el interruptor a la root
usuario sólo puede ver, no puede realizar otras operaciones.
SIP
Puede evitar eficazmente que los programas maliciosos dañen la computadora, por lo que se recomienda mantenerla encendida.
Para obtener una comprensión más detallada, consulte https://eclecticlight.co/2020/06/25/big-surs-signed-system-volume-added-security-protection .
Resolver el problema
Luego comprenda el problema, para abordar el problema, ya que es SIP
un resultado de lo que tenemos desde el SIP
principio.
Ver SIP
estado.
MacBook:~ zhangyi$ csrutil status
System Integrity Protection status: open.
Si se encuentra SIP
en estado abierto, estará SIP
deshabilitado.
MacBook:~ zhangyi$ csrutil disable
csrutil: This tool needs to be executed from Recovery OS.
Cuando ingresé el comando, descubrí que este comando solo se puede ejecutar en modo de recuperación.
。。。
¿Qué hay de ingresar al modo de recuperación de Apple?
Primero, reinicie la computadora, el ícono de Apple está oscuro, mientras mantiene presionado el Command+R
modo de recuperación.
Ingrese a la página de recuperación, abra la terminal.
[Barra de menú superior] -> [Utilidades] -> [Abrir terminal]
y ejecute el comando de desactivación.
csrutil disable
Finalmente, reinícielo.
reboot
Este general para pisarlo, si se quiere volver a abrir SIP
también es necesario realizarlo en modo de recuperación.
csrutil enable
Si no lo resuelve, recuerde probar este comando.
sudo mount -uw /
Monte el directorio raíz.
Sin embargo, puede haber un error debido a permisos insuficientes:
mount_apfs: volume could not be mounted: Permission denied
mount: / failed with 66
mount_apfs: volume could not be mounted: Operation not permitted
mount: / failed with 77