-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathCHANGES
523 lines (445 loc) · 21.5 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
6.1.4
------------
- Fixed a bug where regex expressions conducted on modules with "-" or "_" in their name
to fail. This caused modules (i.e dm-crypt) with the affected characters that were added
to "Addon.py" to not be copied into the initramfs.
6.1.3
------------
- Relicensed to the Simplified BSD License
- 'dmsetup' will only be copied when LUKS is used.
6.1.2
------------
- Relicensed back to MPL 2.0
6.1.1
------------
- Relicensed to the GPLv2 (Only GPLv2, Not GPLv2+)
- The "starting udev version ###" message will no longer appear
when using new versions of udev.
6.1.0
---------
- The core engine has gone through a complete refactoring as well
- "Successfully decrypted: <>" message will no longer be displayed
- udev support is now optional
- You can now specify just the remaining portion (folder/firmware) of the firmware file
excluding the "/lib/firmware/" in the Firmware hook.
- Added "/sbin/udevd" to the list of places where the application will try to find the udev binary.
This was done in order to fix the directory layout that sys-fs/eudev uses.
- Fixed a bug where the keyfile drive wouldn't umount when passing the UUID of the keyfile to umount command.
- Fixed a bug where if the keyfile drive didn't umount successfully, you would still receive a "successfully
unmounted message" right after the failed to umount message.
- Fixed renmants of old "die" calls to the new "Fail" call in the 'init' file which could have caused bugs
- Re-added 2 second delay when importing zpool without cachefile. The delay is to give the user enough time
to read the message about making sure to remake their initramfs to include their new zpool.cache.
- Fixed a bug where using PARTUUID would actually use UUID.
- When unmount devices before switching into root, it will now lazy umount rather than normal umount
to reduce the risk of an unnecessary lock up.
6.0.1
---------
- Added "LABEL=" to the list of supported boot namings
6.0.0
---------
- bliss-initramfs is now using udev. So you will now benefit from UUIDs, PartUUIDs, PartLabels, IDs, and
better integration with systemd post boot, and anything else udev provides.
- Relicensed to Apache License 2.0
- Increased default encryption loop tries from 3 to 5.
- Added the "enc_tries" boot parameter. You can use this to adjust the max tries that cryptsetup will give you.
Example: enc_tries=10
- One init file rather than init and libs/common.sh
- Major refactoring was done. The init file was ran through shellcheck.net's analyzer.
- New command line parsing algorithm
- Just to mention it again.. UUIDs support has been finally implemented! You can use the UUIDs for both multiple root drives,
and also your usb drive if you have your keyfile in there :D.
- I'm no longer supporting using the initramfs to decrypt your swap via enc_drives. The initramfs is only supposed to
get your root filesystem up and delegate everything else to the userspace. The proper way to decrypt your drive is to use
/etc/crypttab. Doing this properly also fixes the issue where systemd would hang for 1 minute and 30 seconds because it
tried to decrypt a swap partition/waited for an event that was already performed.
- The following directories are now copied into the initramfs: /etc/modprobe.d/, /etc/udev/, /lib/udev
- You can now copy either all of your firmware files or only the needed firmware by modifying hooks/firmware.py.
- "Copying modules" message will only appear when modules are actually going to be copied.
- Removed 2 second delay when 'refresh' is used for zpool.cache
5.3.0
---------
- You are now able to pass options to 'cryptsetup' via the 'enc_options' boot line parameter.
- Converted tabs to spaces, ensured line endings, etc.
5.2.0
---------
- Now supports encrypting/decrypting your swap partition (just append it to the "enc_drives" variable)
- "enc_root" has been renamed to "enc_drives" and is now an optional parameter.
Meaning that if you don't pass it in, the program will ask you for it.
- No longer supports multiple individual encryption passphrases. The application will use the one passphrase
you provided to automatically decrypt all your drives, or it will use your keyfile to automatically decrypt
them all.
- You are now able to refresh the "available drives" list that the key/key_gpg phases generate when the "redetect" flag is set
- The application will now ask you for the enc_type if you didn't explictly declare it
- The initramfs will no longer set the hostid value. It will default to the patched upstream ZoL code (all zeroes)
- Updated the boot design a bit
- The initramfs will now not only display /dev/sd? devices, but also /dev/vd? devices (In case you are making drives under KVM)
- Some of the "key_gpg" parts were broken. This has now been fixed.
- Fixed a bug where the decryption loop would only let you try twice rather than three times
- Improved the "decrypt_drives" algorithm
- Fixed a bug where the key drive file wasn't being unmounted if you were using "key" as your enc_type
- Decreased delay for the zfs refresh zpool.cache message from 3 to 2
- The available drives will only be detected and shown if you didn't set your enc_key_drive. This speeds things up a bit.
5.1.0
---------
- All support not relating to ZFS or a Normal boot has been removed. There are better
initramfs applications out there for those use cases (LVM, LVM on RAID, etc)
- Added a commented "dm-crypt" to the addons.py to facilitate the user to enable encryption
support (when their encryption support is compiled as a module)
rather than built into the kernel).
- Improved comments in some places
5.0.0
---------
- The application has been refactored. Smaller, faster, and cleaner.
- The application has been relicensed back to the Mozilla Public License 2.0.
- Improved error checking
- Improved program flow
- Improved parameter passing
- Improved dependency detection
- Visual improvements, including the removal of unneeded messages
- Supports passing the init to launch with the "init" flag. Example: init=/sbin/blahblah
4.1.2
---------
- Relicensed to the more permissive, Apache License 2.0
- Changed interpreter from '#/usr/bin/env python' to '#/usr/bin/python3'.
This is a symlink to the system's python 3.X interpreter. Thus even if the user has python 2.X
set in 'eselect python list', the program will still work.
4.1.1
---------
- The application will now use the zpool.cache file that's on the system
at the time of creation if it finds one.
- The hostid of the generating system will be stored in /etc/hostid on the
initramfs.
- 'refresh' option has been added so that if your initramfs has a stale
zpool.cache and you need to boot, you can use it to ignore that cachefile
and automatically install a clean zpool.cache into your system.
- util-linux programs, zsplat, ztest, zstreamdump, zpios, zinject, zhack
have been removed.
- Fixed a bug with single user mode
4.1.0
---------
- The application can now be ran from any directory
- The application has been redesigned so that it's execution is cleaner
- Fixed a bug where 'lmodules' wasn't being set correctly
- The application will generate a 16 digit random number temporary directory,
in /tmp to minimize folder/file collisions (i.e: /tmp/1786-2475-3902-4380/)
- The application has been changed from procedural to object oriented.
- Fixed a minor bug where the err_mod_dexi() wasnt being found
- Other nice improvements that I can't remember...
4.0.3
---------
- The application will now ask you a max of three times to enter your
correct decryption password before throwing you into rescue shell.
4.0.2
---------
- Fixed a bug where parameters passed to the kernel including a "=" weren't
being parsed correctly (ex: options="subvol=root")
4.0.1
---------
- Fixed a minor bug where zpool.cache wasn't being copied into the rootfs
because the /etc/zfs directory didn't exist in the initramfs during import.
- Implemented a temporary fix function to detect the location of kmod.
Once the program's structure is better designed this function can be placed
in a more appropriate location.
- Gentoo will be supported again.
4.0.0
---------
- Added the ability to pass mount "options" for '/' via initramfs.
- Major redesign of application. New functions written for copying, etc
- Refactoring was done all around the application
- Fixed a bug where modules in the "addon_mods" list weren't being loaded
- Fixed a bug where job control wasn't working properly
- Application renamed from 'createInit' to 'mkinitrd'
- Limit 80 columns on all files, switched to ts=4, bs=4 sts=4, noet for styling
- Updated "USAGE" file a bit
- Gentoo support has been removed. Only Funtoo will be supported.
3.0.2
---------
- Fixed an issue where using 'su' (single user) mode flag would not go into
single user mode but rather it would continue to boot into the rootfs.
- Updated busybox from 1.21.1 to 1.22.0
3.0.1
---------
- The application checks to see if all the modules in the list exist
in the given kernel directory
- Aliases have been created to the 'shutdown -f' and 'reboot -f' commands in initrd.
Now you can use their equivalents without -f directly.
- The creator will no longer ask you to input the location of your kernel modules
directory if you don't specify any modules. This also means that if you don't need any
kernel modules in your initramfs, you can do a: ./createInit <option> and directly create
an initramfs without mentioning a kernel at all.
- mdadm was outputting benign error messages about exclusive mapfile. This is now hidden.
- All man pages have been removed from the initramfs
- The luks 'veritysetup' program is now included.
- Since the initramfs isn't using any udev related stuff, the creator will
no longer copy udev files to the initramfs.
3.0.0
---------
Major Changes:
- The application has been rewritten from scratch in Python 3.3
- There is now support for LVM, RAID, LVM on RAID, Normal Boot, and their Encrypted counterparts.
Minor Changes:
- Fixed a bug where the decryption variable wasn't being checked if it was null.
2.0.5
---------
Major Changes:
- The initramfs will now always copy it's zpool.cache to the rootfs. This prevents the rootfs
from becoming out of sync with the stuff that the initramfs was working with.
- 'su' - single user mode performes a complete chroot with functional /dev, /proc, /sys
Minor Changes:
- Fixed a bug where the initramfs would only get bz2 compressed man pages.
- Worked a bit more on the tty job control stuff.
- Added checks to make sure that if the initramfs cannot find any module dependencies, then it will fail.
- Removed customized /etc/bash/bashrc and now setting hostname directly with 'hostname' command.
2.0.4
---------
Major Changes:
- Added support to include your /etc/modprobe.d/zfs.conf file so that your zfs modules are
loaded with your desired options.
Minor Changes:
- Useless "INIT" variable removed.
2.0.3
---------
Major Changes:
- Fixed bug where the initrd kept failing because it couldn't export (a non existing) pool.
2.0.2
---------
Major Changes:
- Relicensed back to MPLv2
- Removed ability to have zpool.cache inside the initramfs (Too many problems)
Minor Changes:
- UI changes were made. Spacing and some rewording
2.0.1
---------
Major Changes:
- Relicensed to the GPLv2 (Only the GPLv2, not v1, not v3, not v39232, only GPLv2)
Minor Changes:
- Made instructions more clearer in the USAGE file
2.0.0
---------
Major Changes:
- Completely rewrote the code so that it's cleaner and smaller
- Removed "Slax Bundle" creation option. This application will strictly be for creating
an initramfs.
Minor Changes:
- Code is now using bash style if statements ([[ ]])
1.8.8
---------
Major Changes:
- Busybox 1.21.1 static binary now included.
- 'reboot -f' and 'poweroff -f' commands now work within the initramfs.
- The creator now runs depmod before gathering the modules. This prevents it from not being able
to gather the modules if the modules were rebuilt but dependency information wasn't updated yet.
Minor Changes:
- MPLv2 License is now in the COPYING file
- Added LICENSES folder to include licenses for compliance (for busybox)
- Fixed a bug where grep was saying it didn't know about it's parameters.
- Removed 'nano' from the ebuild
- Fixed a bug where the program would try to build the initramfs if you tried to make it
with a null assigned kernel (in the "Please enter a kernel" step).
- Cleaned up some code and added get_dlist() function
- Removed "-o, -v" parameters and 'HELP' file
1.8.7.1
---------
- Initramfs will not not append the .img flag to the initrd file.
1.8.7
---------
- Fixed a bug where busybox wasn't being detected properly in an outside environment.
1.8.6
---------
- Added dynamic detection of base binaries. Might need to do this for all binaries in the future.
* Reason for this is that sometimes Funtoo and Gentoo store core files in different locations.
- Added support for passing the keyfile as a kernel parameter (enc_key, enc_key_drive)
- Simplified the encrypted process
1.8.5
---------
- Fixed a bug that prevented the initramfs from copying the modules.
This bug occured when you were in a live cd (somewhere other than live system),
and you tried to create an initramfs. The modules weren't found because modprobe uses
`uname -r` to detect the base directory for modules. Now modprobe is using -S <kernel>.
1.8.4
---------
Major Changes:
- Initramfs now uses bash instead of busybox's default shell (ash).
- Kernel loading mechanism has been switched from busybox's kernel stuff to kmod
- Added ability to use keyfile with luks (enc_type=pass, key, or key_gpg)
- Added nano, kmod, and gpg to the initramfs
- Modules can now be added automatically with full dependencies. This means that
you can say "I want to use nouveau, zfs, and another driver" and the creator will
automagically get every module that that module needs in order for it to work.
Minor Changes:
- Reduced sleep time from 5 to 4 in refresh_cache function for files/resources/generic.sh
- Made the modules loading function smaller in files/resources/generic.sh
- Transitioning over to equal signs from Strict POSIX to normal bash "=" to "=="
- Transitioning over if functions to use -o or -a rather than: ] && [ ] || [
- Bash colors are now added
- You can now decide whether or not you want to copy your zpool cache
- The initramfs will automatically make all the busybox nodes in /bin before packing.
- Now using bash style arrays for the luks devices function.
- Prints out the luks devices nicely at boot
1.8.3
---------
- Fixed a benign bug that printed out that the rpool didn't exist
- Switched from creating SRMs (System Rescue Modules) to SBs (SLAX Bundles).
System Rescue CD is no longer used for this creator. SLAX will now be used.
- Fixed the title colors so that they are also consistent with different shells
- Added the "plugins/depmod" directory. You can use this directory to place gathered "modules.*" files.
Read the README in that directory for more information.
1.8.2
---------
- Relicensed back to MPLv2
- Now the initramfs will unlock multiple encrypted devices before mounting the zfs pool
* Instructions can be found in the USAGE file
1.8.1
---------
- Fixed a bug where the initramfs wouldn't work at boot (kernel panic)
because the initramfs wasn't packaging the files in the correct directory
structure.
- Continued to improve application flow
- All variables have been renamed so that they don't have the "_" prefix
- Made the code more elegant in some areas
1.8.0
---------
- Restructed the program so that the SRM option can create SRMs for both
normal and alternate kernels in sysresccd, and have them both on the root of
your iso or usb.
- Cleaned up a lot of application flow so that the application uses the path
variables already defined in the variables.sh rather than relying on relative
symbols (like . represent 'here').
- Colors have been brought back to simple colors so that it can look
as uniform as possible in most terminals or screens.
- The creator no longer makes an .md5 file for the .srms.
1.7.2
---------
- Now copies the modules.order and modules.builtin files into the initramfs
so the depmod program doesn't complain. These files don't have any affect
on the functionality of the initramfs. The initramfs will work fine without
them.
1.7.1
---------
- Relicensed from the MPLv2 to the Simplified BSD License
1.7.0
---------
- Adds support for single user mode (via 'su' boot parameter).
This is a really bad su mode though. Use it if you forgot to
change your password after installation.
- Adds support to recreate the zpool.cache from within the initramfs
(via 'refresh' boot parameter)
- Removed some old code that wasn't being used anymore.
- Added a few more functions to consolidate stuff.
- The version of the creator that the initramfs was made with will be displayed at boot
- Fixed bug where when asking for help via parameters (./createInit -h), it was
pointing to the wrong location.
- Sourcing files is now done via relative path rather than using $(pwd)
1.6.9
---------
- Updated for ZoL 0.6.1
1.6.8.1
---------
- Removed remnant splat and zpios modules trying to be loaded in the init.
1.6.8
---------
- Removed the inclusion of debug modules (splat.ko, zpios.ko).
1.6.7
---------
- Fixed the sed subtitions in resources/generic.sh. The init script wouldn't boot
up because when I relicensed the application, the deleted lines shifted the
numbers that the sed inline substition was doing in the init file.
1.6.6
---------
- This project is now GPL compatible (again/exhibit b removed).
1.6.5
---------
- Added function that cleans up initramfs and srm directory structure
- Updated to support 0.6.0_rc14
- squashfs-tools is no longer required if you just want to make an initramfs
- udev rules are now working. This means you can make a swap partition and use it
via /dev/zvol/<pool_name>/<swap_name> immediately from inside the sysresccd.
1.6.4
---------
- Added ZFS System Rescue Module support. The code bases for my
initramfs creator and for the SRM creator are now merged.
- When creating a ZFS initramfs/srm, the documentation will also
be copied.
- sys-fs/squashfs-tools must be installed on your system.
- Some functions have been consolidated.
- Restructured a bit how files are located and copied
- Normal Boot has been removed
- This project is no longer GPL compatible.
- Job control has been enabled in the initramfs
1.6.3
---------
- Added the "nocache" kernel parameter. Use this if you have an
old zpool.cache that is preventing you from booting.
- Added the "recover" kernel parameter. Use this if want to use the
initrd as a recovery environment. (Stops initrd and goes into it
without booting anything).
1.6.2
---------
- Added support to generate a regular initramfs that just boots directly
into a partition with a filesystem that the kernel supports.
- Rewrote library dependency gathering algorithm
- Added better help and switch options
- Rewrote options passing algorithm
- 256 COLORS !!!
1.6.1
---------
- Rewrote the way the initramfs mounts the pool and rootfs. Now your
"df" and "zfs list" will show the correct mount location for rootfs /
rather than showing the location of where the initramfs mounted the pool
"/mnt/root".
- You now must use pool_root= instead of pool_name=. Check the USAGE for more
info.
- The initramfs now uses your zpool.cache if available. This speeds up booting
since the initramfs doesn't need your scan for devices in order to find the
pool.
1.6.0.1
---------
- Bug fix update, the modules directory wasn't being checked because it
was still using the old INIT_TYPE variable. This has been fixed.
1.6.0
---------
- Colored output
- Renamed most variables and changed the prefix "JV" to "_".
- Added LUKS + ZFS support
- New application structure. The program now uses flags in order to determine
what features were enabled. The check/copy functions are now streamlined.
There is also only 1 init script now and the init script also uses flags in order
to determine what to do and what kernel modules to load.
- Init has now been modularized. Functions that init uses have moved to another
file in the initramfs.
1.5.1
----------
- Requirement for zlib_deflate has changed. You now have to compile
zlib_deflate into the kernel rather than as a module.
- Dependency list is now sanitized before application copies them over to
the initramfs. This makes IO much less since it doesn't have to copy duplicates.
- File structured renamed/simplified
1.5.0-r1
----------
- Same as last release, but I forgot to uncomment the "clean all" action at the
end of the createInit script.
1.5.0
----------
- Removed all support for LVM and RAID. The creator will now only focus on ZFS.
- Relicensed to MPLv2.
- Rewrote the parsing used to find the dynamic libraries required for the apps.
- Creator now properly gets and loads "zlib_deflate" module. This was causing
problems at boot up because without the zlib_deflate module, an user would
get a "unknown symbol in module or invalid parameter" error for all the other
zfs modules.
- Added more comments, cleaned up a few comments
- The script must be ran as root in order to use depmod. The script now
checks to see if root is the user running it.
- If depmod cannot be ran, the script will halt.
1.4.4
----------
- Added checks for 'cpio'.
- Added ability to pass the option and kernel version you want directly
on the command line. This will help you if you want to make a script.
- The creator now outputs the initramfs with a generic name of "initrd.img".
This will also help you if you want to quickly copy/paste the initrd file
into the /boot directory.
- Relicensed the application from GPLv2 to the more permissive ISC license.
- Added a few helper functions
- Removed the JV_DISTRO variable