Risponderemo a tutte le tue domande!

File system di sola lettura

Motivi possibili:

  • Filesystem danneggiato
  • Spegnimento non corretto
  • Errore di configurazione

Sebbene la maggior parte dei filesystem siano progettati per prevenire gli errori, questi possono ancora accadere. In tali casi, Linux attiva un meccanismo di protezione montando un dispositivo a blocchi fallito come di sola lettura. Ciò consente la localizzazione del problema e la prevenzione di ulteriori danni ai dati. Pertanto, la prima e la più ovvia opzione sarebbe quella di controllare il filesystem e correggere tutti gli errori, se ne vengono trovati.

Diagnostica

Inizia con uno sguardo veloce ai dischi collegati:

sudo fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: EXAMPLE HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 147676BD-7D65-4290-91F0-B45ACD9E360B
  
Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 83884031 83879936  40G Linux filesystem
  
Disk /dev/sdb: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: EXAMPLE HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x880bd48d
  
Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 52428799 52426752  25G 83 Linux

Si presentano due dischi. Il primo è /dev/sda con due partizioni: /dev/sda1 e /dev/sda2. Questo disco viene utilizzato per il sistema ed è montato in modo permanente. È impossibile correggere gli errori senza spegnere il sistema operativo. Tuttavia, c'è un trucco che consente di valutare lo stato del disco di sistema.

Controlla il filesystem

Esegui fsck con l'opzione -n ed esamina l'output:

sudo fsck -n /dev/sda2
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
Warning!  /dev/sda2 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda2: clean, 118002/2621440 files, 1794718/10484992 blocks

L'iscrizione "pulito" indica che non ci sono problemi con il filesystem del disco di sistema. Se l'errore è causato da questo particolare disco, allora si può provare a rimontarlo senza il rischio di perdere dati:

sudo mount -o remount,rw /dev/sda2 /

Questo può aiutare in diversi casi. Puoi anche provare a riavviare il server:

sudo shutdown -r now

Esamine un altro disco, /dev/sdb. Procedere con una diagnostica rapida:

sudo fsck -n /dev/sdb1
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
/dev/sdb1 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  +(32768--33796) +(98304--99332) +(163840--164868) +(2                                                                                                             29376--230404) +(294912--295940) +(819200--820228) +(884736--885764) +(1605632--                                                                                                             1606660) +(2654208--2655236) +(4096000--4097028)
…

Ripara il filesystem corrotto

Qui, vediamo come appare l'output del comando se il filesystem nella prima partizione, /dev/sdb1, è effettivamente corrotto. Tuttavia, l'opzione -n funziona solo per scopi diagnostici e non apporta alcuna modifica. Usa l'opzione -f per riparare il filesystem danneggiato:

sudo fsck -f /dev/sdb1
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  +(32768--33796) +(98304--99332) +(163840--164868) +(229376--230404) +(294912--295940) +(819200--820228) +(884736--885764) +(1605632--1606660) +(2654208--2655236) +(4096000--4097028)
Fix[y]? yes
Padding at end of inode bitmap is not set. Fix[y]? yes
  
/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 11/1638400 files (0.0% non-contiguous), 146893/6553344 blocks

Ecco fatto! Funziona! Controlliamo di nuovo:

sudo fsck -n /dev/sdb1
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
/dev/sdb1: clean, 11/1638400 files, 146893/6553344 blocks

Il filesystem è pulito, il che indica che il problema è risolto.

A volte, un messaggio di errore simile può essere il risultato di un'opzione (errors=remount-ro) specificata per una particolare partizione non di sistema in /etc/fstab. Questa opzione risulta preziosa quando il sistema si imbatte in un errore che rappresenta un rischio per il filesystem. Impedisce eventuali modifiche aggiuntive che potrebbero peggiorare la questione o portare alla perdita di dati. Per risolvere questo errore, basta semplicemente rimontare il filesystem per lettura/scrittura, come menzionato sopra.

Guarda anche:



Aggiornato: 12.03.2025

Pubblicato: 22.05.2024


Hai altre domande? Scrivici!

By clicking «I Accept» you confirm that you have read and accepted the website Terms and Conditions, Privacy Policy, and Moneyback Policy.