Data recoveryIn computing, data recovery is a process of retrieving deleted, inaccessible, lost, corrupted, damaged, or formatted data from secondary storage, removable media or , when the data stored in them cannot be accessed in a usual way. The data is most often salvaged from storage media such as internal or external hard disk drives (HDDs), solid-state drives (SSDs), USB flash drives, magnetic tapes, CDs, DVDs, RAID subsystems, and other electronic devices.
USB flash driveA USB flash drive (also called a thumb drive in the US, or a memory stick in the UK & Pen Drive in many countries) is a data storage device that includes flash memory with an integrated USB interface. It is typically removable, rewritable and much smaller than an optical disc. Most weigh less than . Since first appearing on the market in late 2000, as with virtually all other computer memory devices, storage capacities have risen while prices have dropped.
Self-modifying codeIn computer science, self-modifying code (SMC or SMoC) is code that alters its own instructions while it is executing – usually to reduce the instruction path length and improve performance or simply to reduce otherwise repetitively similar code, thus simplifying maintenance. The term is usually only applied to code where the self-modification is intentional, not in situations where code accidentally modifies itself due to an error such as a buffer overflow.
ExFATexFAT (Extensible File Allocation Table) is a introduced by Microsoft in 2006 and optimized for flash memory such as USB flash drives and SD cards. exFAT was proprietary until 28 August 2019, when Microsoft published its specification. Microsoft owns patents on several elements of its design. exFAT can be used where NTFS is not a feasible solution (due to data-structure overhead), but where a greater than that of the standard FAT32 file system (i.e. 4 GB) is required.
NTFSNew Technology File System (NTFS) is a proprietary developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded (FAT) as the preferred filesystem on Windows and is supported in Linux and BSD as well. NTFS reading and writing support is provided using a free and open-source kernel implementation known as NTFS3 in Linux and the NTFS-3G driver in BSD. By using the convert command, Windows can convert FAT32/16/12 into NTFS without the need to rewrite all files.
File Allocation TableFile Allocation Table (FAT) is a developed for personal computers and was the default filesystem for MS-DOS and Windows 9x operating systems. Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. The increase in disk drives capacity required three major variants: FAT12, FAT16 and FAT32. FAT was replaced with NTFS as the default file system on Microsoft operating systems starting with Windows XP.
Mass storageIn computing, mass storage refers to the storage of large amounts of data in a persisting and machine-readable fashion. In general, the term is used as large in relation to contemporaneous hard disk drives, but it has been used large in relation to primary memory as for example with floppy disks on personal computers. Devices and/or systems that have been described as mass storage include tape libraries, RAID systems, and a variety of computer drives such as hard disk drives, magnetic tape drives, magneto-optical disc drives, optical disc drives, memory cards, and solid-state drives.
GNU GRUBGNU GRUB (short for GNU GRand Unified Bootloader, commonly referred to as GRUB) is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions. GNU GRUB was developed from a package called the Grand Unified Bootloader (a play on Grand Unified Theory).
SYSLINUXThe Syslinux Project is a suite of five different boot loaders for starting up Linux distros on computers. It was primarily developed by H. Peter Anvin. The Syslinux Project consists of five different boot loaders: The eponymous SYSLINUX, used for booting from the filesystem ISOLINUX, used for booting from the ISO 9660 filesystem PXELINUX, used for booting from a network server using the Preboot Execution Environment (PXE) system EXTLINUX, used for booting from Btrfs, ext2, ext3, ext4, , NTFS, , and XFS filesystems MEMDISK, emulates a RAM disk for older operating systems like MS-DOS The project also includes two separate menu systems and a development environment for additional modules.
Multi-bootingMulti-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting may require a custom boot loader. Multi-booting allows more than one operating system to reside on one computer; for example, if a user has a primary operating system that they use most frequently and an alternate operating system that they use less frequently.