Linux, macOS немесе Windows жүйесінде кездейсоқ rm -rf немесе Shift-Delete: бірден оқуға арналған қайта орнату¶
Төтенше нөмірлер елге қарай әр түрлі болады. Бұл бетте Америка Құрама Штаттары мен Канадаға арналған 911 нөмірі пайдаланылады. Көптеген басқа елдер 112, 999 немесе басқа сандарды пайдаланады. Еліңіздің нөмірін табыңыз.
Кездейсоқ көру rm -rf, find -delete, git clean -fdx, немесе Windows Shift+Delete маңызды өндірістік дерекқорларды, бастапқы кодты немесе жеке файлдарды қоқыс жәшігіне немесе қоқыс қалтасына жібермей жою дереу дүрбелең тудырады. Алайда, екеуі де rm -rf не Shift+Delete пәрмен аяқталған сәтте негізгі сақтау секторларын нақты нөлге теңестіреді: оның орнына операциялық жүйе жай ғана каталог жазбасын ажыратады, метадеректер журналын жаңартады және сол инод көрсеткіштерін немесе негізгі файл кестесін белгілейді (MFT) қайта пайдалану үшін қол жетімді нүктелік кескіндерді жазады және блоктайды. Жойылған файлдарды біржола жоятын нәрсе әр секунд сайын файлдық жүйе оқу-жазу режимінде орнатылған күйде қалады (rw) режим жойылғаннан кейін фондық жүйе тіркеушілері ретінде (systemd-journald, rsyslog), шолғыш кэштері, своп әрекеті және SSD TRIM / discard пәрмендер жаңадан босатылған блоктарды жылдам қайта жазады. Егер сіздің жүйеңіз оның орнына физикалық шертуден, нашар секторлардан немесе өлі контроллерден зардап шегетін болса, тоқтап, біздің нұсқаулыққа ауысыңыз. қатты дискінің ақауы және деректерді қалпына келтіру, немесе қатты күйдегі диск контроллердің тозуына байланысты өзін құлыптаса, қараңыз SSD және NVMe кенеттен тек оқу режимі және TRIM өшірулі құтқару; кеңірек пішімдеу қателері немесе камера картасы мәселелері үшін кеңесіңіз кездейсоқ файлды жою, пішімделген диск және фотосуреттерді қалпына келтіру. Бұл оқиға қылмыстық диверсия, бопсалау немесе өмірді қорғау жүйесінің істен шығуымен байланысты болса, жергілікті жедел қызмет нөміріне (911 АҚШ пен Канадада, 112 Еуропалық Одақ бойынша, 999 Ұлыбританияда) немесе біздің халықаралық анықтамалықты тексеріңіз шұғыл нөмірлер.
Мұны қазір жасаңыз¶
- Басу
Ctrl+Cжою пәрмені әлі де іске қосылса және кез келген ашық терминал терезелерін, мәтіндік редакторларды, медиа ойнатқыштарды немесе дерекқор демондарын ЖАБМАЙДЫ: егер іске қосылған бағдарлама болса (nginx,postgres,mysqld,vim,code,python,tail, немесе бейне ойнатқыш) әлі де жадта жойылған файл ашық болса, Linux немесе macOS ядросы файлдың деректер блоктарын сол процесс өзінің файл дескрипторын жапқанша сақтайды. Қолданбаны жабу немесе машинаны дәл қазір қайта жүктеу сілтемелер санын бірден босатады (i_nlink == 0) және блоктың нақты бөлінуін іске қосыңыз. - Linux жүйесін қайта орнату немесе өшіру алдында тексеріңіз
/proc/<pid>/fd/жұмыс істеп тұрған процесс арқылы әлі ашық тұрған кез келген жойылған файлдарды құтқару үшін дәл қазір: Іске қосуsudo lsof +L1(бұл сілтемелер саны 1-ден аз болатын барлық ашық файлдарды тізімдейді, яғни олардың байланысы жойылғанrmәлі ашық) және олардың өңделмеген мазмұнын жедел жад/ядро кэшінен бөлек дискіге немесе дереу көшіріңіз/dev/shm(tmpfsRAM дискі) пайдалануcp /proc/<pid>/fd/<fd_number> /dev/shm/rescued_file. - Зақымдалған бөлімді тек оқуға арналған (
ro) бірден ОЖ ядросы бөлінбеген блоктарға журнал журналдарының немесе уақытша файлдардың басқа бір байтты жаза алмайды: - Linux жүйесінде (
ext4,XFS,Btrfs): Жүгіруsudo mount -o remount,ro /path/to/mountpoint(мысалы,sudo mount -o remount,ro /homeнемесеsudo mount -o remount,ro /). - Егер
mount -o remount,ro-мен сәтсіздікке ұшырайдыmount point is busyсіздің тамырыңызда (/) бөлім: іске қосу арқылы Magic SysRq арқылы ядроның шұғыл түрде тек оқуға арналған қайта қосылуын іске қосыңызecho u | sudo tee /proc/sysrq-trigger(бұл барлық орнатылған файлдық жүйелерді процестерді жоймай немесе ашық құлыптарды күтпей-ақ бірден оқу үшін қайта орнатуға мәжбүр етеді). - macOS жүйесінде (
APFS/HFS+): Жүгіруsudo diskutil mount readOnly /Volumes/TargetVolumeжүктелмейтін көлемдер үшін немесе файлдар сіздің негізгі файлыңызда болсаDataкөлемі (/System/Volumes/Data), фондық Spotlight функциясын тоқтату үшін Touch ID / Қуат түймесін 10 секунд ұстап тұру арқылы қуатты дереу күштеп өшіріңіз (mds_stores) жәнеfseventsdжазады. - Windows жүйесінде (
NTFS/ReFS): Егер жойылған файлдар қосымша дискіде болса (D:,E:), Әкімші пәрмен жолын ашыңыз және дыбыс деңгейін тек оқуға арналған арқылы құлыптаңызdiskpart(select volume D,attributes volume set readonly). Егер файлдар қосулы болсаC:\, Windows жүйесін қалыпты түрде өшірмеңіз (қалыпты өшіру жүздеген мегабайт тізбе ұяшықтарын, оқиғалар журналдарын және босатылған бет файлының жаңартуларын жазады.MFTкластерлер); орнына жұмыс үстелінің қуат сымын тартыңыз немесе қуатты лезде өшіру үшін ноутбуктың қуат түймесін 10 секунд басып тұрыңыз. - SSD алдын алу
TRIM(discard/UNMAP) бөлінбеген флэш-беттерді нөлге келтіруден: Егер диск NVMe немесе SATA SSD болса және үздіксіз дискімен орнатылған болса.discard(немесе Windows/macOS жоспарланған болсаTRIMфайл жойылғаннан кейін дереу), кесу қуаты немесе қайта орнатуroОЖ-ны қосымша кезекке қоюды дереу тоқтатадыNVME_DSM_ATTR_DEALLOCATEпәрмендері және SSD өтпейтін USB-NVMe көпір адаптеріне орналастыруTRIMқалпына келтіру кезінде контроллердің фондық қоқыс жинағының қалпына келтірілетін блоктарды өшіруіне жол бермейді. - Сыртқы Live USB құрылғысынан жүктеу (
Ubuntu Live,SystemRescue, немесеWinPE) арқылы бит-разряд бөлімін сыртқы жад дискісіне клондаңызddrescueжою құралын іске қоспас бұрын: Ешқашан іске қоспаңызext4magic,extundelete,testdisk,photorec, немесеntfsundeleteжәбірленуші дискіге қарсы тікелей жазу режимінде; әрқашан блок құрылғысын суретке түсіріңіз (sudo ddrescue -d -r0 /dev/nvme0n1p2 /mnt/external/disk_image.raw /mnt/external/rescue.map) және файлдарыңызды кескіннен кесіңіз немесе қалпына келтірілген файлдарды қатаң түрде екінші физикалық дискіге жазыңыз. - Жергілікті файлдық жүйенің жасырын суреттерін тексеріңіз (
Btrfs,ZFS,LVM, macOS APFS Time Machine жергілікті суреті және Windows көлемінің көлеңкелі көшірмелері) өңделмеген секторларды кесуге сағат жұмсамас бұрын: Көптеген жүйелер уақыттың атомдық блок сілтемелерін тыныш сақтайды (tmutil listlocalsnapshots /macOS жүйесінде,vssadmin list shadowsWindows жүйесінде,zfs list -t snapshot, немесеbtrfs subvolume list -s /) лезде 100 пайыз қалпына келтіруге мүмкіндік бередіrm -rfнемесеShift+Deleteөңделмеген бөлінбеген кластерлерге қол тигізбестен каталогтар.
Danger
Қалпына келтіру бағдарламалық құралын ешқашан орнатпаңыз (apt install extundelete, brew install testdisk, немесе Chrome/Edge арқылы Recuva/R-Studio қолданбасын файлдар жаңа ғана жойылған бөлімге жүктеп алу: 50 мегабайт (0,05 гигабайт) орнатушыны жүктеп алу және мыңдаған кітапхана файлдарын қаптамадан шығару C:\ немесе / файлдық жүйе бөлушісін нақты бөлінбеген блоктарды басып алуға мәжбүр етеді және MFT / кездейсоқ жою арқылы жаңа ғана босатылған inode жазбалары. Әрбір пакетті орнату, шолғышты жүктеп алу немесе зақымдалған бөлімде қалыпты операциялық жүйені қайта жүктеу гигабайт қалпына келтірілетін деректерді біржола қайта жазады.
Шешім ағашы: кездейсоқ жағдайдан кейін дереу триаж rm -rf немесе Shift+Delete¶
Байланыстырылмаған деректер блоктарының мүмкін болатын ең жоғары пайызын сақтау үшін жоюды тапқаннан кейін алғашқы 60 секунд ішінде осы шешім ағашын орындаңыз:
flowchart TD
Start["Кездейсоқ rm -rf, find -delete немесе Shift+Delete Орындалды"] --> OpenCheck{"Кез келген орындалатын процесс (ДБ, редактор, сервер, құйрық) жойылған файлды әлі де ашуы мүмкін бе?"}
OpenCheck -->|"Иә (Linux/macOS әлі жұмыс істейді)"| ProcRescue["1-ҚАДАМ: sudo lsof +L1 дереу іске қосыңыз және /proc/PID/fd/N файлынан RAM дискісіне (/dev/shm) немесе сыртқы USB файлына ашық файл дескрипторларын көшіріңіз."]
OpenCheck -->|"Жоқ (немесе барлық файлдар жабылған)"| SnapCheck{"Көлем ZFS, Btrfs, APFS жергілікті суреттерін немесе Windows көлеңкелі көшірмелерін пайдаланады ма?"}
ProcRescue --> FreezeOS["2-ҚАДАМ: Барлық дискідегі жазуларды дереу тоқтатыңыз"]
SnapCheck -->|"Иә: сиыр суреті бар"| FreezeOS
SnapCheck -->|"Жоқ: Стандартты ext4, XFS немесе Snapshots жоқ NTFS"| FreezeOS
FreezeOS --> OSBranch{"Қандай операциялық жүйе және бөлім зақымдалды?"}
OSBranch -->|"Түбірлік емес Linux (/үй, /деректер)"| RemountRO["Іске қосу: sudo mount -o remount, ro /mountpoint"]
OSBranch -->|"Linux Root (/) бөлімі"| SysRqRO["Іске қосу: echo u | sudo tee /proc/sysrq-trigger (ядроның төтенше жағдайда тек оқуға арналған қайта орнату)"]
OSBranch -->|"Windows C: Drive немесе macOS Boot APFS"| HardPower["Қалыпты жағдайда ӨШІРМЕҢІЗ: өшіру журналын/бет файлын жазуды болдырмау үшін қуат түймесін 10 секунд ұстап тұрыңыз немесе қуат сымын тартыңыз."]
OSBranch -->|"Қосымша сыртқы немесе деректер дискісі"| UnmountSec["Дереу ажыратыңыз/Дыбыс деңгейін тек оқу үшін орнатыңыз және дискіні ажыратыңыз"]
RemountRO --> LiveBoot["3-ҚАДАМ: Сыртқы SystemRescue Live USB жүктеу және сыртқы дискіге ddrescue бөлімін клондау"]
SysRqRO --> LiveBoot
HardPower --> LiveBoot
UnmountSec --> LiveBoot
LiveBoot --> FSRecovery{"Файлдық жүйе бойынша қалпына келтіру әдісін таңдаңыз"}
FSRecovery -->|"ext4 / ext3"| ExtRec["Journal Inode Recovery: ext4magic / extundelete / debugfs"]
FSRecovery -->|"XFS / APFS / Журналдан тыс"| CarveRec["Қолтаңба және үстіңгі деректеме/төменгі деректеме оюы: photorec / скальпель / foremost / xfs_irecover"]
FSRecovery -->|"NTFS (Windows)"| NtfsRec["MFT жазбасын талдау: ntfsundelete / TestDisk / UFS Explorer / DMDE"]
Неліктен әрбір секунд сайын оқу-жазу орнатылған (rw) жойылған файлдарды жояды¶
Неліктен тек оқуға арналған қайта орнату немесе қатты қуатты өшіру деректеріңіз үшін өмір немесе өлім шешімі екенін түсіну үшін іске қосылған кезде әрбір заманауи файлдық жүйенің шын мәнінде не өзгертетінін тексеріңіз. unlink() (rm) немесе DeleteFileW() (Shift+Delete):
1. Ішінде не болады ext4, XFS, APFS, және NTFS жою кезінде¶
Файл жойылған кезде, ешбір тұтынушы операциялық жүйесі дискінің енгізу/шығару өткізу қабілеттілігін 10 гигабайт (10,7 миллиард байт) дерекқорға немесе бейне файлға нөлдерді жазуға жұмсамайды. Оның орнына, файлдық жүйе драйвері тек шағын метадеректер құрылымдарын мутациялайды:
| Файлдық жүйе | Не rm -rf немесе Shift+Delete Бірден өзгертеді |
Неліктен қазіргі нұсқаларда қалпына келтіру қиынырақ? | Ең жақсы қалпына келтіру векторы |
|---|---|---|---|
ext4 (Linux) |
1. Каталог жазбасынан файл атауын жояды. 2. Инодты орнатады i_dtime (жою уақыт белгісі) және жиындар i_links_count = 0.3. Маңызды ext4 қызық: нөлге тең i_block / дискідегі инод құрылымының ішіндегі ағаш көрсеткіштерін кеңейтеді және блоктың нүктелік кескінінде деректер блоктарын бос белгілейді. |
Ұнайды ext3 (бұл жанама блок көрсеткіштерін нөлге теңестірді), ext4 жою кезінде негізгі инод кестесінің ішіндегі ауқым ағашын сүртеді. Дегенмен, ** jbd2 файлдық жүйе журналы журнал сақинасы буферінің айналасына оралмайынша, дәл инодтың ескі көшірмесін оның бүтін ауқым көрсеткіштерімен** сақтайды. |
1. /proc/<pid>/fd/ ашық болса.2. ext4magic / extundelete (талдайды jbd2 журнал өзін қайта жазар алдында инодтың жоюға дейінгі көшірмесін табу үшін журнал).3. Шикі блокты ою ( photorec). |
XFS (RHEL / CentOS / Rocky / Unraid) |
B+tree каталог жазбасын жояды, инодты белгілейді di_mode = 0 (тегін) және деректер ауқымын тікелей Бөлу тобына қайтарады (AG) бос кеңістік B+ағаштар (cntbt / bnobt). |
XFS босатылған инодтардағы жазбаларды агрессивті түрде нөлге келтіреді (di_u) және параллель бөлу топтары бойынша инодтарды жылдам қайта өңдейді. |
1. /proc/<pid>/fd/ ашық болса.2. Метадеректер журналын тексеру ( xfs_logprint) немесе xfs_irecover / шикі файл-қолтаңба ою (photorec, scalpel). |
NTFS (Windows 10/11 / Сервер) |
аударады In-Use жалау (0x01 -> 0x00) 1024 байтта (1 килобайт) $MFT (Негізгі файл кестесі) тақырыбын жазады және кластердің тегін жұмыс істейтінін белгілейді $Bitmap файл. Файл аты, $DATA орындалу тізімінің көрсеткіштері және шағын резиденттік файлдар (700 байттан аз) ішінде толығымен бұзылмаған $MFT рекорд. |
Диск Windows жүйесінде орнатылған күйде қалса, фондық қызметтер (SearchIndexer.exe, svchost.exe, Windows жаңартуы, $UsnJrnl, және Оқиғаларды қарау құралы) жаңасын бөледі $MFT босатылғанның үстінен жазатын жазбалар $MFT ұясы және SSD TRIM бөлінбеген кластерлерді бірден нөлге теңейді. |
1. Көлеңкелі көшірмелер (vssadmin).2. ntfsundelete / TestDisk / DMDE / UFS Explorer (бұзылмай оқиды $DATA орындалмаған тізімнен тікелей $MFT ұясы). |
APFS (macOS) |
Жазу бойынша көшіру (CoW) B-ағаш файл ауқымы жазбасын жояды және пернелер қалтасын сілтемесіз белгілейді. |
Әр файлдың аппараттық шифрлауы (T2 / M1-M4) плюс SSD TRIM жергілікті сурет болмаса, бөлінбеген экстенттерді жояды. |
1. lsof +L1 ашық болса.2. Жергілікті APFS суреттері ( tmutil listlocalsnapshots /).3. Бақылау пункті суперблокпен жүру. |
Btrfs & ZFS (Linux / BSD / NAS) |
Жазу бойынша көшіру (CoW) транзакция тобына ешқандай сурет сілтеме жасамаса ғана ағаш тегін блоктарды жаңартады (txg). |
Суреттерсіз сиырды ою күрделі, бірақ ZFS txg кері қайтару (zpool import -F -T) немесе btrfs restore ағаштарды құтқара алады. |
1. Қолданыстағы суреттер (.zfs/snapshot/ немесе .snapshots/).2. Мәміле тобы ( txg) кері қайтару. |
2. SSD TRIM (Discard / Deallocate) Уақытты бомба¶
Айналмалы қатты дискіде (HDD), секторлар қайта жазылмайынша оқылатын болады. SSD дискісінде (SATA немесе NVMe), файлдық жүйе шығарған кезде a TRIM немесе Deallocate пәрмен:
- Көптеген NVMe контроллерлері TRIM-ден кейін детерминистикалық оқу нөлін (DRAT / DZAT), қайтып келеді 0x00000000 (барлық нөлдер) Flash Translation Layer (FTL) алғаннан кейін бірден TRIM, физикалық NAND қоқыс жинауы іске қосылғанға дейін.
- Неліктен Linux жүйелері жиі аман қалады TRIM: Linux дистрибутивтерінің көпшілігі (Ubuntu, Debian, Fedora, RHEL) үздіксіз орнату уақытын қоспаңыз discard әдепкі бойынша; олар апта сайынғы таймерді іске қосады (fstrim.timer). Тек оқу үшін қайта орнатсаңыз (ro) бұрын fstrim.timer іске қосылғанда, SSD бұл блоктардың картасын әлі шығарған жоқ.
1-кезең: жұмыс істеп тұрған процесс арқылы әлі ашық тұрған жойылған файлдарды құтқару (/proc/<pid>/fd/)¶
Linux немесе macOS жүйесінде қайта жүктеу, ажырату немесе бір терезені жабу алдында ашық файл дескрипторларын тексеріңіз. POSIX жүйелерінде, rm қоңыраулар unlink(). Ядро әрбір инод үшін екі есептегішті қадағалайды:
1. i_nlink: инодты көрсететін дискідегі каталог жазбалары.
2. i_count: инодты жадта ашық ұстайтын белсенді процестер.
Алтын POSIX ережесі: ядро Екеуі де болғанша ешқашан инодты босатпайды немесе диск блоктарын босатпайды. i_nlink == 0 ЖӘНЕ i_count == 0. Жойылған дерекқор, журнал, бейне немесе код файлы кез келген процесте әлі ашық болса, сол файлдың 100 пайызы дискіде өзгеріссіз қалады.
Қадамдық /proc/<pid>/fd/ Linux жүйесінде экстракция¶
- Кез келген процесте әлі ашық болған әрбір жойылған файлды табыңыз:
(Немесе файл аты бойынша сүзгі:
sudo lsof | grep -i "(deleted)" | grep -i "filename") - ** оқыңыз
lsofшығыс бағандары**:** ескеріңізCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NLINK NODE NAME postgres 4182 postgres 14u REG 259,2 524288000 0 1839204 /var/lib/postgresql/16/main/base/16384/16399 (deleted)PID** (4182) және соңғы әріпті (u,r,w) бастапFD(14u->14). - Шикі файлды көшіріңіз
/proc/<pid>/fd/<fd_num>жедел жадқа (/dev/shm) немесе сыртқы диск: Ешқашан құтқарылған файлды зардап шеккен бөлімге қайта жазбаңыз. -ге жазыңыз/dev/shm(RAM дискі) немесе сыртқы USB дискісі: - Дерекқордан немесе контейнерден бірнеше ашық жойылған файлдарды құтқару (
PID=4182) бір циклде: - ** Құтқару буферлері және IDE жергілікті тарихы (
vim,VS Code,Cursor,JetBrains)**: - Ашық өңдегіш қойындыларын жаппаңыз: Ашық буферлерді тікелей мына жерде сақтаңыз
/dev/shmнемесе бас бармақ дискі. - VS коды / курсор / VSCodium жергілікті тарих: ішінде әрбір сақталған файлдың автоматты уақыт белгісі бар көшірмелерін сақтайды
-/.config/Code/User/History/(Linux),-/Library/Application Support/Code/User/History/(macOS) немесе%APPDATA%\Code\User\History\(Windows), жоба қалтасынан толығымен тыс. Тіпті кейінrm -rf -/my-projectнемесеgit clean -fdx, сіздің код файлдарыңыз ішінде өзгеріссіз қаладыUser/History/аentries.jsonманифест әр файлды өзінің бастапқы жолына қайтарады. - JetBrains IDE (
IntelliJ,PyCharm,WebStorm): автоматты тарихты ішінде сақтайды-/.cache/JetBrains/<IDE>/LocalHistory/. - Гит (
git reset --hardнемесеgit branch -Dбірге.git/бүтін): жүгіруgit reflogнемесеgit fsck --lost-foundішінде салбырап тұрған дақтарды қалпына келтіру үшін дереу.git/objects/.
2-кезең: файлдық жүйені тек оқуға арналған мұздату (ro) бөлінбеген блоктарды қайта жазусыз¶
Кез келген ашық файл дескрипторларын шығарғаннан кейін /proc (немесе расталған жоқ), сіздің тікелей басымдылығыңыз операциялық жүйенің бөлімге бір қосымша сектор жазуын тоқтату болып табылады.
1. Linux: Деректер бөлімін түбірге қарсы қайта орнату (/) Бөлім тек оқуға арналған¶
- А сценарийі: Жойылған файлдар бөлек бөлімде болды (
/home,/var,/data,/mnt/storage): - Тек оқуға арналған таза қайта орнатуды дереу орындап көріңіз:
- Егер
mountдейдіmount point is busy, жазу процестерін анықтау және тоқтату (sudo fuser -vm /homeсоңынанsudo fuser -km -TERM /home), содан кейін дереу қайта іске қосыңызsudo mount -o remount,ro /home. - В сценарийі: жойылған файлдар түбірде болды (
/) бөлім (немесе бос емес процестерді жою мүмкін емес): Жүгірмеsudo rebootнемесеsudo shutdown -h now, өйткені қалыптыsystemdөшіру мегабайт жазадыjournaldөшіру журналдары, кездейсоқ тұқымдар және қызмет күйінің файлдары тікелей/. Оның орнына Linux Kernel Magic SysRq төтенше жағдайда тек оқуға арналған қайта орнату іске қосыңыз: s(Emergency Sync): суперблок біркелкі болу үшін жадтағы файлдық жүйе метадеректерін өшіреді.u(Emergency Remount Read-Only): Құрылғыдағы әрбір орнатылған файлдық жүйені «Тек оқуға арналған» ретінде мәжбүрлеп қайта орнатады (ro) процесстерде әлі жазу үшін ашық файлдар болса да, ядроның ішінде. Мұны растаңыз/енді тек оқуға арналғанgrep " / " /proc/mounts.
2. Мұздатылған қашықтағы бұлттық серверді кескіндеу (AWS EC2, GCP, DigitalOcean, Hetzner) SSH үстінде¶
Егер сіз байқаусызда жүгіріп кетсеңіз rm -rf USB дискісін қосу мүмкін емес қашықтағы бұлттық серверде:
1. Magic SysRq тек оқуға арналған қайта орнатуды іске қосыңыз (echo s > /proc/sysrq-trigger && echo u > /proc/sysrq-trigger). Қолданыстағы SSH сеансы тірі қалады, себебі SSH жедел жадта және /dev/pts (devpts) виртуалды жедел жадының псевдотерминалды файлдық жүйесі болып табылады.
2. Бұлтты платформаларда (AWS EC2, GCP, Azure, DigitalOcean) бұлт консолінен бірден атомдық EBS / Block Volume Snapshot түсіріңіз немесе дананы тоқтатыңыз, түбірлік көлемді ажыратыңыз және оны тек оқу үшін тіркеңіз (/dev/xvdf) таза құтқару VM.
3. Қашықтағы қашықтағы серверде мұздатылған тек оқуға арналған бөлімнің сығылған өңделмеген кескінін тікелей SSH арқылы жергілікті жұмыс станциясына ағынмен жіберіңіз:
ssh root@remote-server-ip "dd if=/dev/nvme0n1p2 bs=4M status=progress | zstd -1" > ~/rescued_partition.img.zst
3-кезең: жасырын көшірме жазуды тексеру (CoW) кескіндемеге дейінгі суреттер мен көлеңкелі көшірмелер¶
Бөлінбеген секторлардың терабайттарын сканерлеуден бұрын амалдық жүйенің жасырын уақыт суретін автоматты түрде жасағанын тексеріңіз:
1. macOS: Жергілікті уақыт машинасының APFS суреттері (tmutil)¶
Сыртқы Time Machine дискісі бірнеше апта бойы ажыратылған болса да, macOS автоматты түрде сағаттық жергілікті APFS Copy-on-Write суреттерін ішкі SSD дискіге жазады (com.apple.TimeMachine.YYYY-MM-DD-HHMMSS.local) Time Machine конфигурацияланған сайын немесе macOS жаңартулары алдында:
1. Терминалдағы барлық жергілікті суреттерді тізімдеңіз:
rm -rf, оны тек оқу үшін орнатыңыз және файлдарыңызды көшіріңіз:
mkdir -p /tmp/apfs_rescue
sudo mount_apfs -o ro -s com.apple.TimeMachine.2026-10-31-140000.local /System/Volumes/Data /tmp/apfs_rescue
ls -la /tmp/apfs_rescue/Users/yourname/
2. Windows 10/11 / Сервер: көлемді көлеңке көшірмелері (VSS)¶
- Әкімші пәрмен жолын ашып, келесі әрекеттерді орындаңыз:
- Егер көлеңкелі көшірме (
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1) сізден бұрынShift+Delete, оны қалтаға байланыстырыңыз және файлдарды USB дискісіне көшіріңіз:
3. Linux: Btrfs, ZFS, және LVM Суреттер¶
- Қосулы
Btrfs(Fedora, openSUSE, Synology, Timeshift/Snapper жүйелері): Іске қосуsudo btrfs subvolume list -s /және тексеру/.snapshots/немесе/run/timeshift/backup/timeshift-btrfs/snapshots/. - Қосулы
ZFS(Ubuntu ZFS, Proxmox, TrueNAS): Іске қосуzfs list -t snapshotжәне файлдарды тікелей мына жерден көшіріңіз/path/to/dataset/.zfs/snapshot/.
4-кезең: файлдық жүйе арқылы қадамдық Inode, журнал және MFT қалпына келтіру¶
Ашық файл дескрипторы болмаса (/proc/<pid>/fd/) және сурет жоқ болса, SystemRescue немесе Ubuntu Live USB құрылғысынан жүктеңіз, сыртқы USB қатты дискісін қосыңыз (/mnt/external) және орнатылмаған құрбандық бөлімінің биттік клонын жасаңыз (/dev/nvme0n1p2) бірінші:
/mnt/external/victim_partition.img сондықтан бастапқы диск ешқашан өзгертілмейді.
1. Қалпына келтіру ext4 / ext3 Linux жүйесінде (ext4magic және extundelete)¶
Қашан rm -rf файлдарды жояды ext4, ядро негізгі инод кестесіндегі ауқым тармағының көрсеткіштерін нөлге келтіреді. Алайда, ext4ның jbd2 журнал (әдетте өлшемі 128 мегабайттан 1024 мегабайтқа дейін) жақында өзгертілген инод блоктарының тарихи көшірмелерін сақтайды. Сіз қайта орнатқаныңызша ro ауыр диск әрекеті журнал сақина буферін орап алғанға дейін, ext4magic журналдан алдын ала жою инодын шығарады және файлдарды түпнұсқалық файл атауларымен және каталог ағаштарымен қалпына келтіреді.
- ** Жүгіру
ext4magicсоңғы 2 сағат ішінде жойылған барлық файлдарды қалпына келтіру үшін (-a) салыстырмалы жолдың ішінде (-f)**: (Кіру нүктесінің алдыңғы қиғаш сызығын алып тастаңыз-f: үшін/home/kmyers/projectтамырда/бөлу, өту-f home/kmyers/project; егер/homeөз бөлімі болып табылады, өту-f kmyers/project.) - Балама: жүгіру
extundeleteсуретке қарсы:
2. Windows жүйесінен қалпына келтіру NTFS кейін Shift+Delete (TestDisk және ntfsundelete)¶
Ұнайды ext4, Windows NTFS блок ауқымының көрсеткіштерін нөлге түсірмейді (Data Runs) негізгі файл кестесінің ішінде ($MFT) файл жойылған кезде жазу. Сіз басқан кезде Shift+Delete NTFS жүйесінде, 1024 байт $MFT жазба жай ғана тақырып жалауын аударады 0x01 (Қолдануда) үшін 0x00 (Жойылған). Оның $FILE_NAME атрибут және $DATA кластердің орындалу тізімі басқа файл оны қайта пайдаланбайынша 100 пайыз өзгеріссіз қалады $MFT ұяшық:
- ** Қолдану
TestDiskжедел NTFS үшін$MFTтолық қалта жолдарымен жоюды болдырмау**: ** таңдаңыз[ Proceed ]->[ EFI GPT ]->[ Advanced ]-> NTFS бөлімін бөлектеңіз ->[ Undelete ]. Қалтаға өтіп, ** түймесін басыңыз.aжойылған файлдарды таңдау үшін ** түймесін басыңыз.C** (капиталC) оларды көшіру/mnt/external/recovered_ntfs/. - ** Қолдану
ntfsundelete(ntfs-3g)**:
3. Қалпына келтіру XFS, APFS, немесе Raw Block Carving арқылы қайта жазылған журналдар (PhotoRec және grep -a -b)¶
Инод көрсеткіштері жойылғанда (мысалы, XFS, APFS немесе ext4 журналы оралған бөлім), файл тақырыптары/төменгі деректемелері немесе бірегей мәтін жолдары үшін бөлінбеген 4096 байт (4 килобайт) блоктарды сканерлеу арқылы деректерді қалпына келтіріңіз:
| Нені жойдыңыз | Үздік шикі ою құралы және дәл пәрмен | Неліктен ол инодтарсыз жұмыс істейді? |
|---|---|---|
Бастапқы код, конфигурациялар, Markdown, SQL демптері, SSH кілттері, JSON/YAML (Plain Text Files) |
grep -a -b -C 150 тікелей өңделмеген бөлім кескініне қарсы:LC_ALL=C grep -a -b -C 150 "unique_function_name" /mnt/external/victim_partition.img > /mnt/external/carved_code.txt |
Қарапайым мәтіндік файлдарда екілік сиқырлы тақырыптар жоқ PhotoRec оларды жиі өткізіп жібереді. grep -a -b диск кескінінің әрбір шикі байты сіз есіңізде қалған кез келген бірегей айнымалы атауды немесе жолды іздейді және өңделмеген диск блоктарының айналасындағы 300 жолын шығарады. |
Құжаттар, PDF файлдары, кеңсе (DOCX/XLSX), ZIP/TAR мұрағаттары, кескіндер, бейнелер, SQLite ДҚ |
PhotoRec (testdisk пакет):sudo photorec /mnt/external/victim_partition.img -> [ File Opt ] -> [ Free ] (Бөлінбеген кеңістік) -> шығысты келесіге жазу /mnt/external/photorec_out/. |
480-ден астам екілік файлдың үстіңгі және төменгі колонтитулдарын таниды (%PDF-, PK\x03\x04 ZIP/DOCX/XLSX үшін, SQLite format 3, JPEG/PNG/MP4) және барлық каталогтар мен инодтар нөлге тең болған кезде де сабақтас блоктарды қайта жинайды. |
| XFS Specific Inode & B-Tree Carving | xfs_irecover немесе UFS Explorer Professional Recovery |
XFS бөлу топтарын сканерлейді (AGs) байланысы жоқ инод кластерлері және іргелес ауқым фрагменттері үшін. |
Қалай пайдалануға болады grep -a -b + dd жойылған бастапқы кодты құтқару үшін немесе .env файлдар 2 минуттан аз уақыт ішінде¶
Бастапқы кодты жойсаңыз, .env құпиялар немесе көлемі 32 килобайттан төмен жазбалар:
1. Жойылған файлдың ішінен бірегей жолды іздеңіз және оның нақты байт ығысуын басып шығарыңыз (-b):
grep шығыстар 48291045312:def calculate_invoice_tax.
2. Осы байтты ығысу арқылы бөліңіз 4096 (48291045312 / 4096 = 11789805), 10 блок артқа қадам (11789795) және 30 блокты (120 килобайт) шикі дискіні осы ығысудың айналасында тастаңыз:
dd if=/mnt/external/victim_partition.img bs=4096 skip=11789795 count=30 status=none > /mnt/external/rescued_code_block.txt
/mnt/external/rescued_code_block.txt бұзылмаған кәдімгі мәтіндік файлды шығару үшін кез келген мәтіндік редакторда.
5 кезең: Болашақ апаттың алдын алу rm -rf және Shift+Delete апаттар¶
- Интерактивті ауыстырыңыз
rmбіргеtrash-cliжәнеrm -I --preserve-root=all: орнатуtrash-cli(trash-put,trash-list,trash-restore) және бүркеншік атrmдейінrm -I --preserve-root=allжылы/etc/bash.bashrcжәне-/.zshrcсондықтан кездейсоқ рекурсивті жоюлар инодтарды ажырату алдында бір рет шақырады. - Критикалық өндірістік каталогтарды Linux өзгермейтін төлсипатымен қорғаңыз (
chattr +i): Тіптіroot(sudo rm -rf) белгіленген каталогты немесе файлды жоя немесе өзгерте алмайдыsudo chattr +i /path/to/critical_configәкімші іске қосылғаншаsudo chattr -i. - Автоматтандырылған жергілікті көшіруді жазуға қосу (
CoW) Суреттер (Btrfs/ZFS/APFS/Windows Shadow Copies): ҚолдануSnapperнемесеTimeshiftқосулыBtrfs,sanoidқосулыZFS, немесе Windows жүйесінде күніне екі рет көлемді көлеңке көшірмелері (SystemPropertiesProtection.exe). - Өзгермейтін сайттан тыс жадымен автоматтандырылған 3-2-1 сақтық көшірмелерін сақтаңыз: біздің нұсқаулықты орындаңыз компьютердің сақтық көшірмелері, 3-2-1 стратегиясы және апатты қалпына келтіру пайдалану
resticнемесеborgbackupтек қана қосымшаға арналған қашықтағы репозиторийлермен.
Аймақтық жедел жәрдем нөмірлері және агенттік хаттамалары¶
Дербес компьютерде файлдарды кездейсоқ жою полиция мәселесі емес, техникалық төтенше жағдай болса да, денсаулық сақтау жүйелеріне, муниципалды инфрақұрылымға, соттың сақтау туралы қаулысы бойынша заңды дәлелдерге немесе реттелетін жеке деректерге әсер ететін кездейсоқ немесе зиянды жою оқиғалар туралы міндетті хабарлауды тудыруы мүмкін:
- Америка Құрама Штаттары және Канада:
- Төтенше жағдайдағы өмір қауіпсіздігі / маңызды инфрақұрылымның үзілуі: теріңіз
911жүйені сүрту ауруханадағы пациенттерге күтім көрсетуге, шұғыл жөнелтуге немесе өндірістік физикалық қауіпсіздік бақылауларына әсер етсе. - Киберқауіпсіздік және инфрақұрылымдық қауіпсіздік агенттігі (
CISA) (АҚШ): маңызды инфрақұрылым деректерінің жойылуы немесе күдікті инсайдерлік саботаж туралы хабарлаңыз1-844-Say-CISA(1-844-729-2472) немесеcisa.gov/report. - Канадалық киберқауіпсіздік орталығы: Байланыс
1-833-CYBER-88(1-833-292-3788) маңызды инфрақұрылымдық оқиғалар үшін. - Біріккен Корольдік:
- Төтенше қызметтер: теріңіз
999(немесе101егер жою Компьютерді дұрыс пайдаланбау туралы заң 1990 бойынша рұқсатсыз компьютерді теріс пайдалануды қамтыса, полицияның төтенше жағдайларға қатысты хабарламасы үшін). - Ақпарат комиссарының кеңсесі (
ICO): Кездейсоқ жою сақтық көшірмені қалпына келтірместен жеке деректерді біржола жойса (Ұлыбританияның GDPR бойынша қолжетімділікті бұзуды құрайды), ICO (0303 123 1113) 72 сағат ішінде қажет. - Еуропалық Одақ:
- Төтенше қызметтер: теріңіз
112барлық ЕО-ға мүше мемлекеттерде. - GDPR 33-бап Қолжетімділік бұзылғандығы туралы есеп: Еуропалық деректерді қорғау кеңесінде (
EDPB) нұсқауларға сәйкес, қалпына келтірілетін сақтық көшірмесіз жеке деректердің кездейсоқ біржола жойылуы жеке деректердің бұзылуы (қолжетімділіктің жоғалуы) ретінде жіктеледі және ұлттық деректерді қорғау органына есеп беруді талап етуі мүмкін (DPA) 72 сағат ішінде. - Австралия және Жаңа Зеландия:
- Төтенше қызметтер: теріңіз
000Австралияда немесе111Жаңа Зеландияда. - Австралиялық киберқауіпсіздік орталығы (
ACSC): Қоңырау1300 CYBER1(1300 292 371) кәсіпорын немесе инфрақұрылымдық көмек үшін. - Үндістан және Азия-Тынық мұхиты:
- Үндістан (
CERT-In/ Киберқылмысқа қарсы ұлттық сенім телефоны): теріңіз112төтенше жағдайды жою үшін немесе1930киберқылмыс оқиғалары үшін; CERT-In мандаттарымен қамтылған кәсіпорын оқиғалары 6 сағат ішінде хабарлануы керекincident@cert-in.org.in.
Жиі қойылатын сұрақтар¶
Неге болмады extundelete немесе ext4magic менің файл атауларымды табыңыз ext4 Мен компьютерді пайдалануды тез тоқтатқаныма қарамастан?¶
Файл жойылған кезде ext4, Linux ядросы дискідегі инод кестесіндегі ауқым ағашының көрсеткіштерін дереу нөлге теңеді, осылайша файлдық жүйе инодтың бөлінген экстенттері жоқ екенін біледі. сияқты құралдар ext4magic және жою ішінен сол инодтың ескі, жойылуға дейінгі көшірмесін табуға сеніңіз ext4 журнал (jbd2). Егер файл журнал арқылы жақында өтпей-ақ жасалған және жойылған болса немесе ауыр фондық жазбалар тек оқуға арналған қайта орнату алдында 128 МБ-тан 1 ГБ-қа дейінгі журнал сақинасының буферіне оралған болса, журнал көшірмесі жоғалады. Бұл жағдайда шикі блок қолтаңбасына ауысу керек (PhotoRec) немесе қарапайым мәтіндік байт іздеу (grep -a -b), ол inode метадеректерін қажет етпей, бөлінбеген деректер блоктарын тікелей сканерлейді.
SSD жасайды TRIM әрқашан бұзады rm -rf немесе Shift+Delete файлдар дереу?¶
Әрқашан емес, әсіресе Linux және сыртқы дискілерде. Windows 10/11 және ішкі NVMe SSD дискілері бар macOS жүйелерінде операциялық жүйе әдетте кірістірілген деректерді жібереді. ТЕКСІРУ / Бөлу тұрақты жойылғаннан кейін бірнеше секунд ішінде SSD контроллеріне пәрмен жіберіңіз, бұл SSD Flash Translation Layer (FTL) нөлдерді қайтару үшін (DZAT) сол блоктар үшін. Дегенмен, Linux дистрибутивтерінің көпшілігі (Ubuntu, Debian, Fedora, RHEL) жасайды емес үздіксіз орнату уақытын қосыңыз тастау әдепкі бойынша; орнына олар жүгіреді fstrim.timer аптасына бір рет. Сонымен қатар, көптеген USB-SATA және USB-to-NVMe сыртқы корпустары өтпейді ТЕКСІРУ USB массалық жады арқылы пәрмендер (BOT) және бағдарламалық қамтамасыз ету RAID / LVM / LUKS қабаттары жиі блоктайды тастау анық конфигурацияланбаса, әдепкі бойынша өту (`issue_discards = 1` немесе `allow-discards`).
Егер менің Linux бөлімі шифрланған болса ше? LUKS (dm-crypt) немесе менің Windows дискім пайдаланады BitLocker: Мен жойылған файлдарды әлі де қиып аламын ба?¶
Иә, егер сізде шифрлау құпия фразасы немесе қалпына келтіру кілті болса және контейнердің құлпын тек оқуға арналған режимде ашса. Ешқашан жүгірме фоторек, ext4magic, немесе сынақ дискісі шифрланған физикалық бөлімге қарсы (/dev/nvme0n1p2), себебі шифрланған шифрланған мәтін кездейсоқ шу сияқты көрінеді. Оның орнына Live USB құрылғысынан жүктеп, контейнер құлпын ашыңыз тек оқуға арналған режим (LUKS үшін: sudo cryptsetup ашық --тек оқу /dev/nvme0n1p2 crypt_rescue; Linux жүйесіндегі BitLocker үшін: дислокатор -r немесе WinPE жүйесінде тек оқуға арналған құлыпты ашыңыз) және шифры шешілген виртуалды карта құрылғысын суреттеңіз немесе сканерлеңіз (/dev/mapper/crypt_rescue).
Неліктен Windows жүйесінде қуат сымын тартып жатыр C:\ кездейсоқ жағдайдан кейін қауіпсіз Shift+Delete «Өшіру» түймесін басқаннан гөрі?¶
Сіз басқан кезде Бастау > Өшіру Windows жүйесінде операциялық жүйе өшіру алдында жүздеген мегабайт дискілерді жазуды орындайды: ол тізілім ұяшықтарын тазартады, өшіру оқиғаларын .evtx журналдар, USN журналын жаңартады ($UsnJrnl), тазартады немесе өлшемін өзгертеді pagefile.sys, және Fast Startup жүйелерінде көп гигабайттық күту күйі файлын жазады (hiberfil.sys) тікелей бөлінбеген NTFS кластерлері арқылы. Бұл өшіру жазбалары жиі нақты бөлінбегенді қайта жазады $MFT Сіз босатқан жазбалар мен деректер кластерлері Shift+Delete. Күшті лезде өшіру (қуат түймесін 10 секунд ұстап тұру немесе ашадан тарту) барлық жазуларды дереу тоқтатады; NTFS тек оқуға арналған Linux немесе WinPE құтқару USB құрылғысынан жүктелген кезде толық оқылатын болып қалады.
Жойылған файлды қалай қалпына келтіруге болады .env файл, SSH кілті немесе бастапқы код файлы PhotoRec елеусіз қалды ма?¶
PhotoRec екілік сиқырлы байт тақырыптарын іздейді (мысалы %PDF, PNG, немесе PK ZIP/Office файлдары үшін), сондықтан ол жиі қысқа кәдімгі мәтіндік файлдарды өткізіп жібереді немесе біріктіреді .env конфигурациялар, Python/JavaScript бастапқы коды, Markdown жазбалары және SSH кілттері. Кез келген қарапайым мәтіндік файлды диск кескінінен немесе тек оқуға арналған бөлімнен қалпына келтіру үшін іске қосыңыз LC_ALL=C grep -a -b -C 100 "UNIQUE_TEXT_FROM_FILE" /dev/nvme0n1p2 > /dev/shm/found.txt. Егер сіз кез келген айнымалы атауды білсеңіз (мысалы STRIPE_SECRET_KEY= немесе ЖЕКЕ КІЛТІ АШУ), grep -a -b өңделмеген секторларды секундына бірнеше гигабайтпен сканерлейді және нақты қоршаған диск блоктарын басып шығарады.
Егер мен байқаусызда жүгіріп кетсем rm -rf / немесе жойылды /usr немесе /lib Linux жүйесінде және қазір тіпті емес ls, cp, немесе sudo жұмыс істейді, ашық терминалда пәрмендерді қалай іске қосамын?¶
Егер сіз сүртсеңіз /бин немесе /lib бар болған кезде bash немесе zsh Терминал әлі де жедел жадта ашық, сыртқы екілік файлдар сияқты /bin/ls немесе /bin/cp -мен сәтсіздікке ұшырайды Мұндай файл немесе каталог жоқ, бірақ қабықтың кірістірілген құрылғылары әлі де толығымен ЖЖҚ ішінде жұмыс істейді. Сіз пайдалана аласыз жаңғырық* орнына ls, printf "%s\n" "$( /dev/shm/rescued орнына cp, және echo u > /proc/sysrq-триггер SystemRescue Live USB құрылғысын өшіру және жүктеу алдында тек оқуға арналған ядроны қайта орнатуды іске қосу үшін (қабық әлдеқашан түбірлі болса).
Қатысты нұсқаулықтар¶
- Кездейсоқ файлды жою, пішімделген диск және фотосуреттерді қалпына келтіру
- SSD және NVMe кенеттен тек оқу режимі, 0% қосалқы блоктар және TRIM өшіретін құтқару
- Қатты дискінің ақаулығы және деректерді қалпына келтіру
- NAS RAID массиві нашарлады, бірнеше диск ақаулары және ZFS/Btrfs қалпына келтіру
- Компьютердің сақтық көшірмелері, 3-2-1 стратегиясы және апатты қалпына келтіру
- Ел бойынша жедел жәрдем нөмірлері
Дереккөздер және ресми нұсқаулар¶
- Ұлттық стандарттар және технологиялар институты (
NIST) (Америка Құрама Штаттары): Арнайы жарияланым 800-86: Криминалистикалық әдістерді инцидентке қарсы әрекетке біріктіру бойынша нұсқаулық және SP 800-88 Rev. 1: медианы зарарсыздандыру бойынша нұсқаулық (ATA TRIM / NVMe бөлу тәртібі). - Linux ядросының ұйымы (
kernel.org): Ext4 файлдық жүйенің құжаттамасы (блок және инодты бөлу,jbd2Журнал жүргізу жәнеprocfs/proc/<pid>/fd/Файл дескрипторының семантикасы) және Linux Magic жүйесінің сұрау кілті (sysrq.txt). - CGSecurity (
TestDisk&PhotoRecРесми құжаттама) жәнеext4magicЖоғары ағынды анықтамалық нұсқаулық: * ext3/ext4 және NTFS томдарындағы инодты алу журналы және бөлінбеген ауқымды кесу*. - Киберқауіпсіздік және инфрақұрылымдық қауіпсіздік агенттігі (
CISA) (Америка Құрама Штаттары): Оқиғаға жауап беру және соттық тұрақсыз/тұрақты емес дәлелдемелерді сақтаудың үздік тәжірибелері. - Еуропалық Одақ киберқауіпсіздік агенттігі (
ENISA): Сандық криминалистика және сақтау медиасын сақтау үшін жақсы тәжірибе нұсқаулығы.