2016-07-19 30 views
1

Wir verwenden BeagleBoneBlack basierten benutzerdefinierten Board,Wie man abgebrochenes Journal im ext4 Dateisystem simuliert?

Während Firmware-Upgrade bekam ich Fehler folgende

[ 194.912834] EXT4-fs error (device mmcblk0p15): ext4_journal_check_start:56: Detected aborted journal 
[ 194.922558] EXT4-fs (mmcblk0p15): Remounting filesystem read-only 

der Vorstand diesen Fehler wieder Neustarten aber zum Testen möchte ich diesen Fehler simulieren und dann in meinem Upgrade-Skripte I möchte den Fehlerfall behandeln.

Gibt es eine Möglichkeit, den obigen Fehler zu simulieren?

EDIT:

mehr Details Einlochen,
sah ich über Fehler während meines Firmware-Upgrade-Skript zu testen, und es wurde nach einem Neustart behoben,

Nach einiger Suche fand ich, dass e2fsck einige beheben könnte Dateisystemfehler.
Also habe ich mein Firmware-Upgrade-Skript mit folgendem Snippet aktualisiert. Jetzt ist mein Problem, ich muss mein Skript für unten Snippet testen, dafür brauche ich eine Situation, in der e2fsck korrigierbare Fehler gibt es in der backup_partition, also suchte ich nach einer Option zum Erstellen solcher Fehler Situation.

E2FSCK_EXITCODE_NO_ERROR=0 
E2FSCK_EXITCODE_FS_ERROR_CORRECTED_REBOOT_REQUIRED=2 
backup_partition="/dev/mmcblk0p16" 

e2fsck -n "${backup_partition}" || status="${?}" 
if [ "${status}" -ne "${E2FSCK_EXITCODE_NO_ERROR}" ];then 
    echo "filesystem errors are observed in ${backup_partition}. e2fsck EXIT_CODE=${status}" 
    status=0 
    e2fsck -y "${backup_partition}" || status="${?}" 
    if [ "${status}" -ge "${E2FSCK_EXITCODE_FS_ERROR_CORRECTED_REBOOT_REQUIRED}" ]; then 
     return_code=$((status & E2FSCK_EXITCODE_FS_ERROR_CORRECTED_REBOOT_REQUIRED)) 
     if [ "${return_code}" -ne 0 ]; then 
     echo "Exiting Filesystem errors corrected for ${backup_partition}, However reboot required, e2fsck EXIT_CODE=${status}." 
     else 
     echo "Exiting .. Filesystem errors are not corrected for ${backup_partition}, e2fsck EXIT_CODE=${status}." 
     fi 
     exit 
    fi 
fi 

EDIT2

ich Fehler reproduzieren könnte, Szenario folgende Verwendung
1. Lesen Sie /dev/mmcblk0p15dd in einem Fenster durch,
2. Gleichzeitig /dev/mmcblk0p15 montieren und Entfernen von Dateien und Dateien kopieren.

# e2fsck -n /dev/mmcblk0p15 > /home/e2fscklog 
e2fsck 1.42.8 (20-Jun-2013) 
    Warning: skipping journal recovery because doing a read-only filesystem check. 
rootfs contains a file system with errors, check forced. 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Entry '..' in .../??? (1224) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1318) has deleted/unused inode 99310. Clear? no 
Entry 'jerq' in .../??? (1318) has deleted/unused inode 1321. Clear? no 
Entry '..' in .../??? (1344) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1423) has deleted/unused inode 99310. Clear? no 
Entry '730MTGr-24' in .../??? (1423) has deleted/unused inode 1002. Clear? no 
Entry '730MTGr' in .../??? (1423) has deleted/unused inode 1035. Clear? no 
Entry '730MTG-41r' in .../??? (1423) has deleted/unused inode 906. Clear? no 
Entry '..' in .../??? (1424) has deleted/unused inode 99310. Clear? no 
Entry 'f1720a' in .../??? (1424) has deleted/unused inode 1425. Clear? no 
Entry 'fenix' in .../??? (1424) has deleted/unused inode 445. Clear? no 
Entry 'f1720' in .../??? (1424) has deleted/unused inode 1425. Clear? no 
Entry 'freedom110' in .../??? (1424) has deleted/unused inode 1426. Clear? no 
Entry 'fenixw' in .../??? (1424) has deleted/unused inode 440. Clear? no 
Entry 'f110-14w' in .../??? (1424) has deleted/unused inode 1427. Clear? no 
Entry 'fos' in .../??? (1424) has deleted/unused inode 1428. Clear? no 
Entry 'f200' in .../??? (1424) has deleted/unused inode 1429. Clear? no 
Entry 'fox' in .../??? (1424) has deleted/unused inode 498. Clear? no 
Entry 'fortune' in .../??? (1424) has deleted/unused inode 1428. Clear? no 
Entry 'f110-14' in .../??? (1424) has deleted/unused inode 1430. Clear? no 
Entry 'freedom100' in .../??? (1424) has deleted/unused inode 1431. Clear? no 
Entry 'falco-p' in .../??? (1424) has deleted/unused inode 1432. Clear? no 
Entry 'f200-w' in .../??? (1424) has deleted/unused inode 1433. Clear? no 
Entry 'freedom200' in .../??? (1424) has deleted/unused inode 1429. Clear? no 
Entry 'f200vi' in .../??? (1424) has deleted/unused inode 1434. Clear? no 
Entry 'falco' in .../??? (1424) has deleted/unused inode 1435. Clear? no 
Entry 'f110-w' in .../??? (1424) has deleted/unused inode 1436. Clear? no 
Entry 'f100-rv' in .../??? (1424) has deleted/unused inode 1437. Clear? no 
Entry 'f100-rv' in .../??? (1424) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'f100' in .../??? (1424) has deleted/unused inode 1431. Clear? no 
Entry 'f200vi-w' in .../??? (1424) has deleted/unused inode 1438. Clear? no 
Entry 'f110' in .../??? (1424) has deleted/unused inode 1426. Clear? no 
Entry 'freedom' in .../??? (1424) has deleted/unused inode 1431. Clear? no 
Entry 'freedom-rv' in .../??? (1424) has deleted/unused inode 1437. Clear? no 
Entry 'freedom-rv' in .../??? (1424) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry '..' in .../??? (1472) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1499) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1500) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1553) has deleted/unused inode 99310. Clear? no 
Entry '630MTG-24' in .../??? (1553) has deleted/unused inode 981. Clear? no 
Entry '..' in .../??? (1554) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1610) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (1614) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (511) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (608) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (610) has deleted/unused inode 99310. Clear? no 
Entry 'gs5430-22' in .../??? (610) has deleted/unused inode 444. Clear? no 
Entry 'gs5430' in .../??? (610) has deleted/unused inode 484. Clear? no 
Entry '..' in .../??? (652) has deleted/unused inode 99310. Clear? no 
Entry 'unixpc' in .../??? (652) has deleted/unused inode 431. Clear? no 
Entry '..' in .../??? (658) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (661) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (669) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (745) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (389) has deleted/unused inode 99308. Clear? no 
Entry '..' in .../??? (393) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (424) has deleted/unused inode 99310. Clear? no 
Entry '..' in .../??? (819) has deleted/unused inode 99310. Clear? no 
Entry 'liswb' in .../??? (819) has deleted/unused inode 833. Clear? no 
Entry 'layer' in .../??? (819) has deleted/unused inode 834. Clear? no 
Entry 'lisaterm' in .../??? (819) has deleted/unused inode 835. Clear? no 
Entry 'ln03-w' in .../??? (819) has deleted/unused inode 836. Clear? no 
Entry 'linux-vt' in .../??? (819) has deleted/unused inode 837. Clear? no 
Entry 'linux-c' in .../??? (819) has deleted/unused inode 838. Clear? no 
Entry 'linux-m' in .../??? (819) has deleted/unused inode 839. Clear? no 
Entry 'linux2.6.26' in .../??? (819) has deleted/unused inode 840. Clear? no 
Entry 'lisa' in .../??? (819) has deleted/unused inode 841. Clear? no 
Entry '..' in .../??? (1059) has deleted/unused inode 99310. Clear? no 
Entry 'share' in /usr (65572) has deleted/unused inode 99306. Clear? no 
Entry 'dg211' in .../??? (1059) has deleted/unused inode 1099. Clear? no 
Entry 'd430-unix-w' in .../??? (1059) has deleted/unused inode 1103. Clear? no 
Entry 'dku7102' in .../??? (1059) has deleted/unused inode 1101. Clear? no 
Entry 'dmd-24' in .../??? (1059) has deleted/unused inode 936. Clear? no 
Entry 'darwin-80x25' in .../??? (1059) has deleted/unused inode 1209. Clear? no 
Entry 'd217-unix-25' in .../??? (1059) has deleted/unused inode 1211. Clear? no 
Entry 'ddr3180' in .../??? (1059) has deleted/unused inode 1212. Clear? no 
Entry 'd414-unix-sr' in .../??? (1059) has deleted/unused inode 1215. Clear? no 
Entry 'ddr' in .../??? (1059) has deleted/unused inode 1212. Clear? no 
Entry 'darwin-m-f' in .../??? (1059) has deleted/unused inode 1216. Clear? no 
Entry 'dmd1' in .../??? (1059) has deleted/unused inode 907. Clear? no 
Entry 'd464-unix-sr' in .../??? (1059) has deleted/unused inode 1215. Clear? no 
Entry 'd578-dg' in .../??? (1059) has deleted/unused inode 1098. Clear? no 
Entry 'd430c-unix-w' in .../??? (1059) has deleted/unused inode 1103. Clear? no 
Entry 'd214' in .../??? (1059) has deleted/unused inode 1104. Clear? no 
Entry 'd210' in .../??? (1059) has deleted/unused inode 1104. Clear? no 
Entry 'd410-7b-w' in .../??? (1059) has deleted/unused inode 1100. Clear? no 
Entry 'd210-dg' in .../??? (1059) has deleted/unused inode 1155. Clear? no 
Entry 'd414-unix' in .../??? (1059) has deleted/unused inode 1097. Clear? no 
Entry 'darwin-80x25-m' in .../??? (1059) has deleted/unused inode 1160. Clear? no 
Entry 'dmd-34' in .../??? (1059) has deleted/unused inode 1032. Clear? no 
Entry 'dku7103-sna' in .../??? (1059) has deleted/unused inode 1213. Clear? no 
Entry 'd577-dg' in .../??? (1059) has deleted/unused inode 1098. Clear? no 
Entry 'd411-7b-w' in .../??? (1059) has deleted/unused inode 1100. Clear? no 
Entry 'ds40-2' in .../??? (1059) has deleted/unused inode 1157. Clear? no 
Entry 'vapple' in .../??? (1224) has deleted/unused inode 983. Clear? no 
Entry 'viewpoint60' in .../??? (1224) has deleted/unused inode 946. Clear? no 
Entry 'vp60' in .../??? (1224) has deleted/unused inode 946. Clear? no 
Entry 'vitty' in .../??? (1224) has deleted/unused inode 834. Clear? no 
Entry 'viewpoint' in .../??? (1224) has deleted/unused inode 988. Clear? no 
Entry 'xterm-r5' in .../??? (1344) has deleted/unused inode 1386. Clear? no 
Entry 'xterm-xf86-v333' in .../??? (1344) has deleted/unused inode 1388. Clear? no 
Entry 'xterm-xf86-v333' in .../??? (1344) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'xterm-8bit' in .../??? (1344) has deleted/unused inode 1389. Clear? no 
Entry 'xterm-8bit' in .../??? (1344) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'xnuppc-m-f' in .../??? (1344) has deleted/unused inode 1216. Clear? no 
Entry 'xnuppc+80x25' in .../??? (1344) has deleted/unused inode 1385. Clear? no 
Entry 'xnuppc+100x37' in .../??? (1344) has deleted/unused inode 1392. Clear? no 
Entry 'xnuppc+f2' in .../??? (1344) has deleted/unused inode 1390. Clear? no 
Entry 'xdku' in .../??? (1344) has deleted/unused inode 1391. Clear? no 
Entry 'xl83' in .../??? (1344) has deleted/unused inode 787. Clear? no 
Entry 'xnuppc-80x25' in .../??? (1344) has deleted/unused inode 1209. Clear? no 
Entry 'xterm+88color' in .../??? (1344) has deleted/unused inode 1387. Clear? no 
Entry 'xnuppc-80x25-m' in .../??? (1344) has deleted/unused inode 1160. Clear? no 
Entry 'xnuppc-m-b' in .../??? (1344) has deleted/unused inode 1156. Clear? no 
Entry 'microterm' in .../??? (1500) has deleted/unused inode 952. Clear? no 
Entry 'mai' in .../??? (1500) has deleted/unused inode 1546. Clear? no 
Entry 'mime2a-v' in .../??? (1500) has deleted/unused inode 1547. Clear? no 
Entry 'masscomp2' in .../??? (1500) has deleted/unused inode 1548. Clear? no 
Entry 'microterm5' in .../??? (1500) has deleted/unused inode 1034. Clear? no 
Entry 'mlterm-256color' in .../??? (1500) has deleted/unused inode 1551. Clear? no 
Entry 'modgraph2' in .../??? (1500) has deleted/unused inode 1545. Clear? no 
Entry 'megatek' in .../??? (1500) has deleted/unused inode 1549. Clear? no 
Entry 'mime2a' in .../??? (1500) has deleted/unused inode 1547. Clear? no 
Entry 'mach-color' in .../??? (1500) has deleted/unused inode 1550. Clear? no 
Entry 'mime-hb' in .../??? (1500) has deleted/unused inode 1552. Clear? no 
Entry 'ibmapa8c-c' in .../??? (1554) has deleted/unused inode 1563. Clear? no 
Entry 'ibm5151' in .../??? (1554) has deleted/unused inode 1564. Clear? no 
Entry 'ibm6154' in .../??? (1554) has deleted/unused inode 1569. Clear? no 
Entry 'ibm6154' in .../??? (1554) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'iris40' in .../??? (1554) has deleted/unused inode 1570. Clear? no 
Entry 'iris40' in .../??? (1554) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'ibm5154-c' in .../??? (1554) has deleted/unused inode 1575. Clear? no 
Entry 'ibm5154-c' in .../??? (1554) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'ibmpc' in .../??? (1554) has deleted/unused inode 1576. Clear? no 
Entry 'ibmmono' in .../??? (1554) has deleted/unused inode 1577. Clear? no 
Entry 'ibm3164' in .../??? (1554) has deleted/unused inode 1578. Clear? no 
Entry 'ibm3161' in .../??? (1554) has deleted/unused inode 1579. Clear? no 
Entry 'ibm3161' in .../??? (1554) has an incorrect filetype (was 1, should be 2). 
Fix? no 
Entry 'ibm8512' in .../??? (1554) has deleted/unused inode 1572. Clear? no 
Entry 'ibm6153-40' in .../??? (1554) has deleted/unused inode 1581. Clear? no 
Entry 'ibm-apl' in .../??? (1554) has deleted/unused inode 1030. Clear? no 
Entry 'interix' in .../??? (1554) has deleted/unused inode 1582. Clear? no 
Entry 'ibm3101' in .../??? (1554) has deleted/unused inode 1584. Clear? no 
Entry 'ibm3163' in .../??? (1554) has deleted/unused inode 1579. Clear? no 
Entry 'ibm3163' in .../??? (1554) has an incorrect filetype (was 1, should be 2). 
Fix? no 

............................CUT............. 


Unattached zero-length inode 944. Clear? no 

Unattached inode 944 
Connect to /lost+found? no 

Unattached zero-length inode 953. Clear? no 

Unattached inode 953 
Connect to /lost+found? no 

Unattached zero-length inode 954. Clear? no 

Unattached inode 954 
Connect to /lost+found? no 

Unattached zero-length inode 955. Clear? no 

Unattached inode 955 
Connect to /lost+found? no 

Unattached zero-length inode 956. Clear? no 

Unattached inode 956 
Connect to /lost+found? no 

Unattached zero-length inode 957. Clear? no 

Unattached inode 957 
Connect to /lost+found? no 

Unattached zero-length inode 958. Clear? no 

Unattached inode 958 
Connect to /lost+found? no 

Unattached zero-length inode 959. Clear? no 

Unattached inode 959 
Connect to /lost+found? no 

Unattached zero-length inode 960. Clear? no 

Unattached inode 960 
Connect to /lost+found? no 

Unattached zero-length inode 961. Clear? no 

Unattached inode 961 
Connect to /lost+found? no 

Unattached zero-length inode 962. Clear? no 

Unattached inode 962 
Connect to /lost+found? no 

Unattached zero-length inode 963. Clear? no 

Unattached inode 963 
Connect to /lost+found? no 

Inode 964 ref count is 2, should be 1. Fix? no 

Unattached zero-length inode 965. Clear? no 

Unattached inode 965 
Connect to /lost+found? no 

Unattached zero-length inode 966. Clear? no 

Unattached inode 966 
Connect to /lost+found? no 

Unattached zero-length inode 967. Clear? no 

Unattached inode 967 
Connect to /lost+found? no 

Unattached zero-length inode 968. Clear? no 

Unattached inode 968 
Connect to /lost+found? no 

Unattached zero-length inode 993. Clear? no 

Unattached inode 993 
Connect to /lost+found? no 

Unattached zero-length inode 994. Clear? no 

Unattached inode 994 
Connect to /lost+found? no 

Unattached zero-length inode 995. Clear? no 

Unattached inode 995 
Connect to /lost+found? no 

Unattached zero-length inode 996. Clear? no 

Unattached inode 996 
Connect to /lost+found? no 

Unattached zero-length inode 997. Clear? no 

Unattached inode 997 
Connect to /lost+found? no 

Unattached zero-length inode 998. Clear? no 

Unattached inode 998 
Connect to /lost+found? no 

Unattached zero-length inode 999. Clear? no 

Unattached inode 999 
Connect to /lost+found? no 

Unattached zero-length inode 1000. Clear? no 

Unattached inode 1000 
Connect to /lost+found? no 

Unattached zero-length inode 1009. Clear? no 

Unattached inode 1009 
Connect to /lost+found? no 

Unattached zero-length inode 1010. Clear? no 

Unattached inode 1010 
Connect to /lost+found? no 

Unattached zero-length inode 1011. Clear? no 

Unattached inode 1011 
Connect to /lost+found? no 

Unattached zero-length inode 1012. Clear? no 

Unattached inode 1012 
Connect to /lost+found? no 

Unattached zero-length inode 1013. Clear? no 

Unattached inode 1013 
Connect to /lost+found? no 

Unattached zero-length inode 1014. Clear? no 

Unattached inode 1014 
Connect to /lost+found? no 

Unattached zero-length inode 1015. Clear? no 

Unattached inode 1015 
Connect to /lost+found? no 

Unattached zero-length inode 1016. Clear? no 

Unattached inode 1016 
Connect to /lost+found? no 

Inode 1017 ref count is 2, should be 1. Fix? no 

Unattached zero-length inode 1018. Clear? no 

Unattached inode 1018 
Connect to /lost+found? no 

Unattached zero-length inode 1019. Clear? no 

Unattached inode 1019 
Connect to /lost+found? no 

Unattached zero-length inode 1020. Clear? no 

Unattached inode 1020 
Connect to /lost+found? no 

Unattached zero-length inode 1021. Clear? no 

Unattached inode 1021 
Connect to /lost+found? no 

Unattached zero-length inode 1022. Clear? no 

Unattached inode 1022 
Connect to /lost+found? no 

Unattached zero-length inode 1023. Clear? no 

Unattached inode 1023 
Connect to /lost+found? no 

Unattached zero-length inode 1024. Clear? no 

Unattached inode 1024 
Connect to /lost+found? no 

Inode 1041 ref count is 5, should be 3. Fix? no 

Unattached zero-length inode 1042. Clear? no 

Unattached inode 1042 
Connect to /lost+found? no 

Unattached zero-length inode 1043. Clear? no 

Unattached inode 1043 
Connect to /lost+found? no 

Unattached zero-length inode 1044. Clear? no 

Unattached inode 1044 
Connect to /lost+found? no 

Unattached zero-length inode 1045. Clear? no 

Unattached inode 1045 
Connect to /lost+found? no 

Unattached zero-length inode 1046. Clear? no 

Unattached inode 1046 
Connect to /lost+found? no 

Unattached zero-length inode 1047. Clear? no 

Unattached inode 1047 
Connect to /lost+found? no 

Unattached zero-length inode 1048. Clear? no 

Unattached inode 1048 
Connect to /lost+found? no 

Unattached zero-length inode 1057. Clear? no 

Unattached inode 1057 
Connect to /lost+found? no 

Unattached zero-length inode 1058. Clear? no 

Unattached inode 1058 
Connect to /lost+found? no 

Inode 1059 ref count is 2, should be 1. Fix? no 

Inode 1224 ref count is 2, should be 1. Fix? no 

Inode 1237 ref count is 3, should be 2. Fix? no 

Inode 1259 ref count is 4, should be 2. Fix? no 

Inode 1268 ref count is 4, should be 2. Fix? no 

Inode 1318 ref count is 2, should be 1. Fix? no 

Unattached zero-length inode 1329. Clear? no 

Unattached inode 1329 
Connect to /lost+found? no 

Unattached zero-length inode 1330. Clear? no 

Unattached inode 1330 
Connect to /lost+found? no 

Unattached zero-length inode 1331. Clear? no 

Unattached inode 1331 
Connect to /lost+found? no 

Unattached zero-length inode 1332. Clear? no 

Unattached inode 1332 
Connect to /lost+found? no 

Unattached zero-length inode 1333. Clear? no 

Unattached inode 1333 
Connect to /lost+found? no 

Unattached zero-length inode 1334. Clear? no 

Unattached inode 1334 
Connect to /lost+found? no 

Unattached zero-length inode 1335. Clear? no 

Unattached inode 1335 
Connect to /lost+found? no 

Unattached zero-length inode 1336. Clear? no 

Unattached inode 1336 
Connect to /lost+found? no 

Unattached zero-length inode 1337. Clear? no 

Unattached inode 1337 
Connect to /lost+found? no 

Unattached zero-length inode 1338. Clear? no 

Unattached inode 1338 
Connect to /lost+found? no 

Unattached zero-length inode 1339. Clear? no 

Unattached inode 1339 
Connect to /lost+found? no 

Unattached zero-length inode 1340. Clear? no 

Unattached inode 1340 
Connect to /lost+found? no 

Unattached zero-length inode 1341. Clear? no 

Unattached inode 1341 
Connect to /lost+found? no 

Unattached zero-length inode 1342. Clear? no 

Unattached inode 1342 
Connect to /lost+found? no 

Unattached zero-length inode 1343. Clear? no 

Unattached inode 1343 
Connect to /lost+found? no 

Inode 1344 ref count is 2, should be 1. Fix? no 

Inode 1423 ref count is 2, should be 1. Fix? no 

Inode 1424 ref count is 2, should be 1. Fix? no 

Unattached zero-length inode 1449. Clear? no 

Unattached inode 1449 
Connect to /lost+found? no 

Inode 1450 ref count is 2, should be 1. Fix? no 

Unattached zero-length inode 1451. Clear? no 

Unattached inode 1451 
Connect to /lost+found? no 

Unattached zero-length inode 1452. Clear? no 

Unattached inode 1452 
Connect to /lost+found? no 

Unattached zero-length inode 1453. Clear? no 

Unattached inode 1453 
Connect to /lost+found? no 

Unattached zero-length inode 1454. Clear? no 

Unattached inode 1454 
Connect to /lost+found? no 

Unattached zero-length inode 1455. Clear? no 

Unattached inode 1455 
Connect to /lost+found? no 

Unattached zero-length inode 1456. Clear? no 

Unattached inode 1456 
Connect to /lost+found? no 

Unattached zero-length inode 1457. Clear? no 

Unattached inode 1457 
Connect to /lost+found? no 

Unattached zero-length inode 1458. Clear? no 

Unattached inode 1458 
Connect to /lost+found? no 

Unattached zero-length inode 1459. Clear? no 

Unattached inode 1459 
Connect to /lost+found? no 

Unattached zero-length inode 1460. Clear? no 

Unattached inode 1460 
Connect to /lost+found? no 

Unattached zero-length inode 1461. Clear? no 

Unattached inode 1461 
Connect to /lost+found? no 

Unattached zero-length inode 1462. Clear? no 

Unattached inode 1462 
Connect to /lost+found? no 

Unattached zero-length inode 1463. Clear? no 

Unattached inode 1463 
Connect to /lost+found? no 

Unattached zero-length inode 1464. Clear? no 

Unattached inode 1464 
Connect to /lost+found? no 

Unattached zero-length inode 1465. Clear? no 

Unattached inode 1465 
Connect to /lost+found? no 

Unattached zero-length inode 1466. Clear? no 

Unattached inode 1466 
Connect to /lost+found? no 

Unattached zero-length inode 1467. Clear? no 

Unattached inode 1467 
Connect to /lost+found? no 

Unattached zero-length inode 1468. Clear? no 

Unattached inode 1468 
Connect to /lost+found? no 

Unattached zero-length inode 1469. Clear? no 

Unattached inode 1469 
Connect to /lost+found? no 

Unattached zero-length inode 1470. Clear? no 

Unattached inode 1470 
Connect to /lost+found? no 

Unattached zero-length inode 1471. Clear? no 

Unattached inode 1471 
Connect to /lost+found? no 

Inode 1472 ref count is 2, should be 1. Fix? no 

Inode 1499 ref count is 2, should be 1. Fix? no 

Inode 1500 ref count is 2, should be 1. Fix? no 

Inode 1553 ref count is 2, should be 1. Fix? no 

Inode 1554 ref count is 2, should be 1. Fix? no 

Unattached zero-length inode 1609. Clear? no 

Unattached inode 1609 
Connect to /lost+found? no 

Inode 1610 ref count is 2, should be 1. Fix? no 

Inode 1614 ref count is 2, should be 1. Fix? no 

Inode 1621 ref count is 2, should be 1. Fix? no 

Inode 65572 ref count is 9, should be 8. Fix? no 

Pass 5: Checking group summary information 
Block bitmap differences: +(4361--4368) +(4376--4394) +(4396--4402) +(4406--4414) +(4419--4425) +(4609--4632) +(4657--4658) +(4669--4672) -(68504--68514) -(68545--68560) -(71625--71647) -(71661--71680) -(397321--397324) -(413522--413590) 
Fix? no 

Free blocks count wrong for group #1 (6435, counted=0). 
Fix? no 

Free blocks count wrong for group #2 (8192, counted=0). 
Fix? no 

Free blocks count wrong for group #3 (7933, counted=0). 
Fix? no 

Free blocks count wrong for group #4 (8192, counted=0). 
Fix? no 

Free blocks count wrong for group #5 (7933, counted=0). 
Fix? no 

Free blocks count wrong for group #6 (8192, counted=0). 
Fix? no 

Free blocks count wrong for group #7 (7933, counted=0). 
Fix? no 

Free blocks count wrong for group #8 (8192, counted=3007). 
Fix? no 

Free blocks count wrong for group #50 (460, counted=107). 
Fix? no 

Free blocks count wrong for group #51 (6686, counted=5471). 
Fix? no 

Free blocks count wrong (346495, counted=346694). 
Fix? no 

Inode bitmap differences: +(194--424) +(449--480) +(505--672) +(681--784) +(801--832) +(865--872) +(937--944) +(953--968) +(993--1000) +(1009--1024) +(1041--1048) +(1057--1096) +(1105--1152) +(1161--1208) +(1217--1320) +(1329--1384) +(1393--1424) +(1449--1544) +(1553--1560) +(1585--1600) +(1609--1624) +(1633--1640) +(1649--1664) +(1681--1688) +(1705--1720) -(99305--99310) 
Fix? no 

Directories count wrong for group #48 (252, counted=248). 
Fix? no 

Free inodes count wrong (119307, counted=122509). 
Fix? no 


rootfs: ********** WARNING: Filesystem still has errors ********** 

rootfs: 8709/128016 files (0.1% non-contiguous), 165505/512000 blocks 

Fehler bei dmesg

# [177307.226736] EXT4-fs error (device mmcblk0p15): ext4_journal_check_start:56: Detected aborted journal 
[177307.236546] EXT4-fs (mmcblk0p15): Remounting filesystem read-only 
# [177308.804317] EXT4-fs error (device mmcblk0p15): ext4_put_super:772: Couldn't clean up the journal 

Antwort

2

die neue, modifizierte Frage zu beantworten, hier ist ein Beispiel dafür, wie ein Dateisystem mit einer Korruption zu schaffen, e2fsck beheben können:

<[email protected]> {/u1/xfstests-bld/build-64} (master) 
521% debugfs -w /tmp/foo.img 
debugfs 1.43.1 (08-Jun-2016) 
debugfs: write /dev/null file-to-clri 
Allocated inode: 12 
debugfs: clri file-to-clri 
debugfs: q 
<[email protected]> {/u1/xfstests-bld/build-64} (master) 
522% sudo mount /tmp/foo.img /mnt 
<[email protected]> {/u1/xfstests-bld/build-64} (master) 
523% ls -sF /mnt 
/bin/ls: cannot access '/mnt/file-to-clri': Structure needs cleaning 
total 12 
? file-to-clri 12 lost+found/ 
<[email protected]> {/u1/xfstests-bld/build-64} (master) 
524% dmesg | tail -3 
[35156.062886] EXT4-fs (loop0): mounting ext2 file system using the ext4 subsystem 
[35156.065760] EXT4-fs (loop0): mounted filesystem without journal. Opts: (null) 
[35161.963603] EXT4-fs error (device loop0): ext4_lookup:1608: inode #2: comm ls: deleted inode referenced: 12 
<[email protected]> {/u1/xfstests-bld/build-64} (master) 
525% sudo umount /mnt 
<[email protected]> {/u1/xfstests-bld/build-64} (master) 
526% e2fsck -y /tmp/foo.img 
e2fsck 1.43.1 (08-Jun-2016) 
/tmp/foo.img contains a file system with errors, check forced. 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Entry 'file-to-clri' in/(2) has deleted/unused inode 12. Clear? yes 

Pass 3: Checking directory connectivity 
Pass 4: Checking reference counts 
Pass 5: Checking group summary information 
Inode bitmap differences: -12 
Fix? yes 

Free inodes count wrong for group #0 (4, counted=5). 
Fix? yes 

Free inodes count wrong (4, counted=5). 
Fix? yes 


/tmp/foo.img: ***** FILE SYSTEM WAS MODIFIED ***** 
/tmp/foo.img: 11/16 files (0.0% non-contiguous), 21/100 blocks 
+0

Eine weitere Sache, die ich verpasste, ist, was ist, wenn e2fsck viel öfter dauert (versuchen, Fehler zu korrigieren), muss ich über Timeout oder e2fsck behandelt Zeitüberschreitung denken? Hast du einen Vorschlag für eine Zeitüberschreitung? Wie kann ich das schlechteste mögliche Timeout für e2fsck testen? Wir haben 500 MB ext4 Partition, um auf Dateisystemfehler überprüft zu werden. – AnkurTank

+0

Ich denke wirklich, dass du das falsch machst. Es ist viel wichtiger für Sie zu verstehen, warum das Dateisystem überhaupt beschädigt wird. Wenn es darum geht, dass Ihre Supply-Chain-Leute beschissene Flash-Geräte auswählen, dann sagen Sie ihnen, dass sie ein Qualitätsprodukt bekommen sollen. Was werden Sie tun, wenn e2fsck abläuft? Sagen Sie dem Kunden, dass er die Box für einen Waranee-Austausch zurückschicken soll. Und wenn das Dateisystem aufgrund von beschissener Hardware beschädigt wird, könnten die Dinge so beschädigt werden, dass e2fsck gar nicht mehr läuft, und was wirst du dann tun? –

+0

Ich weiß, worauf Sie zeigen. Sogar wir wollen die Ursache finden. Es begann mit dem in [this] genannten Fehler (https://groups.google.com/forum/#!topic/beagleboard/L7piqfHiyO8). Wir haben dieses Szenario möglicherweise nicht die ganze Zeit und ändern '/ proc/sys/vm/min_free_kbytes 'hat das Problem nicht gelöst. Also müssen wir die Ursache finden, im obigen Beitrag sagt Mr.Nelson, es sieht nach mmc Treiberproblem, da es in 3.12 Kernel nicht stabil war. Jedoch können wir in dieser Phase des Projekts nicht kerneln, in der nächsten Phase könnten wir das vielleicht können. Wir wollen die Ursache finden, aber wir brauchen Stop-Gap-Lösung. – AnkurTank

1

Der einfachste Weg, eine abgebrochene Zeitschrift zu simulieren sind das Dateisystem mit dem Mount-Option errors = remount-ro zu montieren, und dann einen simulierten Dateisystemfehler auslösen Verwendung/sys/fs // trigger_fs_fehler. Zum Beispiel:

% kvm-xfstests shell 
... 
Debian GNU/Linux 8 kvm-xfstests ttyS0 

kvm-xfstests login: root (automatic login) 

Last login: Wed Jul 27 09:45:36 EDT 2016 on ttyS2 
Linux kvm-xfstests 4.7.0-rc1-00021-g5431928 #647 SMP Fri Jul 15 00:09:57 EDT 2016 i686 

The programs included with the Debian GNU/Linux system are free software; 
the exact distribution terms for each program are described in the 
individual files in /usr/share/doc/*/copyright. 

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent 
permitted by applicable law. 
[email protected]:~# mke2fs -t ext4 -Fq /dev/vdc 
/dev/vdc contains a ext4 file system 
    last mounted on Tue Jul 26 22:07:38 2016 
[email protected]:~# dmesg -n 7 
[email protected]:~# mount -o errors=remount-ro /dev/vdc /vdc 
[ 212.945779] EXT4-fs (vdc): mounted filesystem with ordered data mode. Opts: errors=remount-ro 
[email protected]:~# echo test error > /sys/fs/ext4/vdc/trigger_fs_error 
[ 218.987724] EXT4-fs error (device vdc): trigger_test_error:123: comm bash: test error 
[ 218.993043] Aborting journal on device vdc-8. 
[ 218.997476] EXT4-fs (vdc): Remounting filesystem read-only 
[email protected]:~# umount /vdc 
[ 312.335032] EXT4-fs error (device vdc): ext4_put_super:837: Couldn't clean up the journal 
[email protected]:~# e2fsck -fy /dev/vdc 
e2fsck 1.43.1 (08-Jun-2016) 
/dev/vdc: recovering journal 
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 
/dev/vdc: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks 
[email protected]:~# 

Weitere Informationen über kvm-xfstests finden Sie unter: http://thunk.org/gce-xfstests oder https://github.com/tytso/xfstests-bld/blob/master/README.md

+0

Dies simuliert den Fehler, aber ich fragte mich, wie man diese Fehler zu fangen? weil '$?' immer noch seinen Erfolg anzeigt. – AnkurTank

+0

Grundsätzlich möchte ich die Partition 'rw' mounten, aber wegen des erwähnten Fehlers wird es als' ro' gemountet und es gibt keinen Fehler und meine Skripte gehen mit anderen Dingen weiter und scheitern schließlich. Ich möchte Fehler in Advanced erkennen und dann beenden oder versuchen Sie 'e2fsck'. Ein Weg, den ich dachte, war, nachdem mount versuchen, schreiben/berühren Datei zu testen, ob es "rw", aber ich bin mir nicht sicher, ob es eine bessere Möglichkeit, das zu tun ist. – AnkurTank

+0

Ich denke, ein weiterer Weg ist nur Fehler mit 'e2fsck -n/dev/mmcblk0p15' zu überprüfen, aber wundern, warum Mount Fehler nicht zurückgibt? – AnkurTank

0

Dies ist keine Antwort auf diese Frage, aber mehr Informationen hinzufügen

1) Diese Schritte zeigen, wie Dateisystemfehler simuliert werden, die nicht mit dem Befehl fsck -p korrigiert werden können.

#Create a test directory and a testfile 
    mkdir /mnt/mntpt/testdir 

    #create a test file 
    echo "This is just a Test file" > "/mnt/mntpt/testfile" 

    #Create a hard link 
    ln "/mnt/mntpt/testfile" "/mnt/mntpt/testdir/hardlink" 

    #Crea a soft link 
    ln -sf "/mnt/mntpt/testfile" "/mnt/mntpt/testdir/softlink" 

    #Now Run debugfs command to get inode number of the directory 
    test_dir_inode="$(debugfs -R "ls -l" -c "/dev/mmcblk0p16" 2> /dev/null | grep "testdir" | awk '{print $1}')" 

    #clear test directory inode 
    debugfs -R "clri <${test_dir_inode}>" -w "/dev/mmcblk0p16" 

    #umount partition 
    umount "/mnt/mntpt" 

    #mount partition 
    mount /dev/mmcblk0p16 /mnt/mntpt 

    #List the test directory as that will generate the file system error. 
    ls -sF "${test_dir_path}" 

    #unmount partition 
    umount "/mnt/mntpt" 

    #This error won't possible to correct using fsck -p command 
    fsck -p /dev/mmcblk0p16 

It will display below error 

fsck from util-linux 2.21.2 
firmware contains a file system with errors, check forced. 
firmware: Entry 'testdir' in/(2) has deleted/unused inode 43. CLEARED. 
firmware: Inode 2 ref count is 4, should be 3. FIXED. 
firmware: Inode 20 ref count is 2, should be 1. FIXED. 
firmware: Unattached inode 24 


firmware: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. 
     (i.e., without -a or -p options) 


    #that error will be corrected by using fsck -y command as mentioned below 
    fsck -y /dev/mmcblk0p16 

2) Ich suche für die Simulation Fehler fsck -p Befehl Fehler korrigieren, aber Neustart erforderlich Wiederherstellung abzuschließen.Ich glaube, das passiert nur, wenn die zu testende Partition schreibgeschützt ist. Ich überprüfe und aktualisiere Details, sobald ich weitere Informationen bekomme.

Okay, es scheint "Neustart erforderlich, um Wiederherstellungsfehler zu beenden, dh für einen Befehl fsck -p Nachricht des Willens gedruckt werden wie ***** REBOOT LINUX ***** "ist nur für die aktuelle Root-Dateisystempartition gedacht. Wenn die aktuelle Root-Dateisystem-Partition geladen ist ro fsck kann Dateisystemfehler korrigieren, dafür ist REBOOT erforderlich. Für andere Partitionen ist es nicht wahr. [Dies alles, was ich durch Tests kennen gelernt haben und einige Codelesung von e2fsckpro Code.]

Jetzt bin ich
3) Suche nach einer Fehlerwiedergabe, für die fsck -y auch einen Fehler zu korrigieren, fehlschlagen würde. (Wird Details hier aktualisieren, sobald ich das bekomme).

Hier ist ein Update

Offensichtlich dieser Vorgang destruktiv ist, und Sie werden alle Ihre Daten verlieren.

easiest way to create error which can't be corrected by `fsck -y` is as follows, 
dd if=/dev/urandom of=<partition for which error to be simulated> bs=<block size> count=<Partition size/block size> 

so z.B. Wenn ich Test auf/dev/mmcblk0p16 Partition mit 50MB Größe durchführe, wäre der Befehl wie folgt,

dd if=/dev/urandom of=/dev/mmcblk0p16 bs=1M count=50 


To recover that partition we can use below command 

mkfs.ext4 -j -L <Partition name> /dev/mmcblk0pN so sample command would be as follows, 

mkfs.ext4 -j -L testpartition /dev/mmcblk0pN. 
+0

@Theodore Ts'o: Ich habe einige Hausaufgaben gemacht :) Hast du irgendwelche Vorschläge/Korrekturen? – AnkurTank