Adding all files and folders
This commit is contained in:
7
.gemini/settings.json
Normal file
7
.gemini/settings.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"security": {
|
||||
"folderTrust": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
67
docs/00_backup_plan.md
Normal file
67
docs/00_backup_plan.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Phase 0: Full System Backup (CRITICAL)
|
||||
|
||||
**Objective:** To create a complete, offline, and verified backup of all critical data from both the Ubuntu and Windows operating systems before beginning the migration process.
|
||||
|
||||
**Do not proceed to any other phase until this phase is 100% complete.** Data loss is irreversible.
|
||||
|
||||
## Instructions for Backup Operator (Human or AI)
|
||||
|
||||
### 1. Identify Backup Target
|
||||
|
||||
- **Requirement:** You will need an external storage device (e.g., a USB hard drive or NAS) with enough free space to hold all the data you intend to back up.
|
||||
- **Recommendation:** This drive should be dedicated to the backup and stored offline (disconnected from the computer) once the backup is complete.
|
||||
|
||||
### 2. Backup Ubuntu Data
|
||||
|
||||
Your personal files are the top priority. System files can be reinstalled by the new OS.
|
||||
|
||||
- **Primary Tool:** `rsync` is the recommended tool for its efficiency and ability to preserve permissions and metadata.
|
||||
- **Source Directories:** The most common locations for user data on Linux are within the `/home/<username>` directory. You must identify and back up, at a minimum:
|
||||
- `/home/<username>/Documents`
|
||||
- `/home/<username>/Pictures`
|
||||
- `/home/<username>/Music`
|
||||
- `/home/<username>/Videos`
|
||||
- `/home/<username>/Desktop`
|
||||
- `/home/<username>/Downloads`
|
||||
- `/home/<username>/dotfiles` (as mentioned in the main plan)
|
||||
- Any other project or data directories inside your home folder (e.g., `/home/<username>/dev`, `/home/<username>/workspaces`).
|
||||
- **Docker Data:**
|
||||
- Stop all running containers: `docker stop $(docker ps -aq)`
|
||||
- Identify Docker's data directory, typically `/var/lib/docker`. This contains volumes, images, and container configurations. Back this entire directory up.
|
||||
- **Server Configurations:**
|
||||
- Snapcast config: Locate and back up the configuration files (e.g., `/etc/snapserver.conf`, `/etc/snapclient.conf`).
|
||||
- Other server configs (Apache, Node.js services): Back up relevant files from `/etc/` and any service data files.
|
||||
|
||||
**Example `rsync` Command:**
|
||||
```bash
|
||||
# Replace <username>, <external_drive_mount_point>, and <backup_folder_name>
|
||||
# The -a flag archives, -v is verbose, -h is human-readable, --progress shows progress.
|
||||
rsync -avh --progress /home/<username>/Documents /<external_drive_mount_point>/<backup_folder_name>/
|
||||
```
|
||||
*Run this for each source directory.*
|
||||
|
||||
### 3. Backup Windows Data
|
||||
|
||||
- **Method:** Boot into your Windows 10 operating system.
|
||||
- **Source Directories:** Connect your external backup drive. Manually copy the entire contents of your user folders to the backup drive. These are typically located at:
|
||||
- `C:\Users\<YourUsername>\Documents`
|
||||
- `C:\Users\<YourUsername>\Pictures`
|
||||
- `C:\Users\<YourUsername>\Music`
|
||||
- `C:\Users\<YourUsername>\Videos`
|
||||
- `C:\Users<YourUsername>\Desktop`
|
||||
- `C:\Users<YourUsername>\Downloads`
|
||||
- **Thoroughness:** Be meticulous. Ensure you copy all personal data. Do not worry about program files or the Windows directory itself.
|
||||
|
||||
### 4. Verification
|
||||
|
||||
A backup is not a backup until it is verified.
|
||||
|
||||
- **Procedure:** After the copy process is complete for both operating systems, safely eject and reconnect the external drive.
|
||||
- **Spot Check:** Browse the directories on the backup drive. Open a few files of different types (documents, images, music files) from both the Ubuntu and Windows backups to ensure they are not corrupted and are fully readable.
|
||||
- **Compare Sizes:** Use a disk usage tool (like `du -sh` on Linux or checking folder properties on Windows) to compare the size of a few source directories with their backed-up counterparts. They should be identical.
|
||||
|
||||
### 5. Completion
|
||||
|
||||
- Once verified, disconnect the external backup drive.
|
||||
- Store it in a safe, separate physical location.
|
||||
- You may now proceed to Phase 1.
|
||||
39
docs/01_system_recon_guide.md
Normal file
39
docs/01_system_recon_guide.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Phase 1: System Reconnaissance Guide
|
||||
|
||||
**Objective:** To execute the reconnaissance script that gathers essential information about the current system. This information will be used in subsequent phases to plan the file and software migration.
|
||||
|
||||
**Prerequisite:** Ensure you have completed **Phase 0: Full System Backup**. Do not run this script until you have a complete and verified offline backup of your data.
|
||||
|
||||
## Instructions for Operator (Human or AI)
|
||||
|
||||
### 1. Understand the Script
|
||||
|
||||
- **Script Location:** `scripts/01_system_recon.sh`
|
||||
- **Purpose:** This script is designed to be **non-destructive**. It reads information about the system and saves it to a log file. It does not modify any files or settings.
|
||||
- **Actions Performed:**
|
||||
- Gathers disk, partition, and filesystem information.
|
||||
- Calculates the total size of major user directories (Documents, Pictures, etc.).
|
||||
- Lists installed software from `apt` and `snap`.
|
||||
- Collects detailed information about the Docker setup (containers, images, volumes).
|
||||
- Checks for versions of common development languages (Rust, Node, etc.).
|
||||
- Looks for evidence of common servers and development workspaces (Eclipse, Arduino).
|
||||
- **Output:** All findings are saved to `logs/01_system_recon.log`.
|
||||
|
||||
### 2. Execution
|
||||
|
||||
1. Open a terminal on the Ubuntu machine that is being migrated.
|
||||
2. Navigate to the `nixos-migration` project directory.
|
||||
3. Run the script. It may ask for a password as some commands (like inspecting Docker's data directory or listing packages) can require elevated privileges to get a complete picture.
|
||||
|
||||
```bash
|
||||
sudo ./scripts/01_system_recon.sh
|
||||
```
|
||||
|
||||
### 3. Review the Output
|
||||
|
||||
- Upon completion, the script will have created or updated the log file at `logs/01_system_recon.log`.
|
||||
- Review this file to ensure the information appears correct and complete. This log is the foundation for all future planning steps.
|
||||
|
||||
### 4. Next Steps
|
||||
|
||||
Once the reconnaissance is complete and the log file has been generated, you may proceed to **Phase 2: Migration Analysis & Planning**. The data in the log file will be the primary input for this next phase.
|
||||
65
docs/02_software_migration_plan.md
Normal file
65
docs/02_software_migration_plan.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Phase 2: Software Migration Plan & Mapping
|
||||
|
||||
**Objective:** To create a clear mapping from currently installed software (via APT and Snap) to their equivalents in the NixOS ecosystem. This list will directly inform the creation of the `configuration.nix` file.
|
||||
|
||||
## Analysis Summary
|
||||
|
||||
The reconnaissance scan revealed a large number of installed packages. The following is a high-level summary and a plan for the most critical software components identified.
|
||||
|
||||
**Instructions:** Review this list. Add any missing critical applications. The "NixOS Package Name" column should be filled in by searching for the application on [NixOS Search](https://search.nixos.org/packages).
|
||||
|
||||
---
|
||||
|
||||
### Tier 1: Critical Applications & Services
|
||||
|
||||
These are essential for your daily workflow and server functions.
|
||||
|
||||
| Application Name | Installed Via | Notes | NixOS Package Name / Module |
|
||||
| ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- |
|
||||
| Docker | `apt` | Core virtualization tool. | `virtualisation.docker.enable = true;` |
|
||||
| Docker Compose | `apt` | Used for multi-container Docker apps. | `docker-compose` |
|
||||
| Firefox | `snap` | Primary web browser. | `firefox` |
|
||||
| Thunderbird | `snap` | Email client. | `thunderbird` |
|
||||
| Kitty | `apt` | Terminal emulator. | `kitty` |
|
||||
| Neovim (from dotfiles) | Manual/Git | Primary text editor. | `neovim` |
|
||||
| Snapcast (Server/Client)| `apt`? | Need to locate config files (`/etc/snap*`). | `snapcast-server`, `snapcast-client` |
|
||||
| Gitea (mentioned) | Docker/Manual | Git service. | `gitea` or managed via Docker |
|
||||
| Nushell | `snap` | Shell. | `nushell` |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
|
||||
### Tier 2: Development & CLI Tools
|
||||
|
||||
Essential tools for your development and command-line environment.
|
||||
|
||||
| Tool Name | Installed Via | Notes | NixOS Package Name |
|
||||
| ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- |
|
||||
| Git | `apt` | Version control. | `git` |
|
||||
| Rust (cargo, rustc) | `apt` | Rust programming language toolchain. | `rustc`, `cargo` |
|
||||
| Node.js | `apt` | JavaScript runtime. | `nodejs` (specify version) |
|
||||
| Python 3 | `apt` | Python programming language. | `python3` |
|
||||
| build-essential / gcc | `apt` | C/C++ compiler and core build tools. | `gcc`, `gnumake` |
|
||||
| btop | `apt` | Resource monitor. | `btop` |
|
||||
| eza / bat / fzf | `apt` | Modern CLI tools. | `eza`, `bat`, `fzf` |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
|
||||
### Tier 3: Desktop & GUI Applications
|
||||
|
||||
Standard desktop applications.
|
||||
|
||||
| Application Name | Installed Via | Notes | NixOS Package Name |
|
||||
| ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- |
|
||||
| LibreOffice | `apt` | Office suite. | `libreoffice` |
|
||||
| Flameshot | `apt` | Screenshot tool. | `flameshot` |
|
||||
| GIMP / Inkscape (if any)| `apt`? | Graphics editors. | `gimp`, `inkscape` |
|
||||
| GNOME Apps (various) | `apt` | Calculator, Clocks, etc. | Handled by `services.xserver.desktopManager.gnome.enable = true;` |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
## Plan for Other Packages
|
||||
|
||||
- **System Libraries:** The vast majority of packages listed in the log are system libraries (files ending in `...:amd64`, `...-dev`, `lib...`). These will be managed automatically by NixOS as dependencies for the applications you choose to install. You do not need to list them manually.
|
||||
- **Snap Packages:** All applications installed via `snap` will need to be replaced with their NixOS/Flathub equivalents. NixOS does not support Snap out of the box.
|
||||
- **De-duplication:** Many packages are related (e.g., `g++`, `gcc`, `cpp`). In NixOS, installing the `gcc` package will provide the necessary toolchain.
|
||||
|
||||
**Next Step:** Use this document as a worksheet to build the `environment.systemPackages` list in the `configuration.nix.template` file.
|
||||
67
docs/02_software_migration_plan_filled.md
Normal file
67
docs/02_software_migration_plan_filled.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Phase 2: Software Migration Plan & Mapping (Filled)
|
||||
|
||||
**Objective:** To create a clear mapping from currently installed software (via APT and Snap) to their equivalents in the NixOS ecosystem. This list will directly inform the creation of the `configuration.nix` file.
|
||||
|
||||
## Analysis Summary
|
||||
|
||||
The following tables are based on the `logs/01_system_recon.log` file.
|
||||
|
||||
---
|
||||
|
||||
### Tier 1: Critical Applications & Services
|
||||
|
||||
These are essential for your daily workflow and server functions.
|
||||
|
||||
| Application Name | Installed Via | Notes | NixOS Package Name / Module |
|
||||
| ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- |
|
||||
| Firefox | `snap` | Primary web browser. | `firefox` |
|
||||
| Thunderbird | `snap` | Email client. | `thunderbird` |
|
||||
| Kitty | `apt` | Terminal emulator. | `kitty` |
|
||||
| Neovim | `apt` | Primary text editor. | `neovim` |
|
||||
| Nushell | `snap` | Shell. | `nushell` |
|
||||
| VS Code | `snap` | Code editor. | `vscode` |
|
||||
| Telegram Desktop | `snap` | Messaging app. | `telegram-desktop` |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
|
||||
### Tier 2: Development & CLI Tools
|
||||
|
||||
Essential tools for your development and command-line environment.
|
||||
|
||||
| Tool Name | Installed Via | Notes | NixOS Package Name |
|
||||
| ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- |
|
||||
| Git | `apt` | Version control. | `git` |
|
||||
| Rust (cargo, rustc) | `apt` | Rust programming language toolchain. | `rustc`, `cargo` |
|
||||
| Node.js | `apt` | JavaScript runtime. | `nodejs` (specify version) |
|
||||
| Python 3 | `apt` | Python programming language. | `python3` |
|
||||
| build-essential / gcc | `apt` | C/C++ compiler and core build tools. | `gcc`, `gnumake` |
|
||||
| btop | `apt` | Resource monitor. | `btop` |
|
||||
| eza | `apt` | Modern `ls` replacement. | `eza` |
|
||||
| bat | `apt` | Modern `cat` replacement. | `bat` |
|
||||
| fzf | `apt` | Command-line fuzzy finder. | `fzf` |
|
||||
| ripgrep | `apt` | Fast search tool. | `ripgrep` |
|
||||
| zoxide | `apt` | Smarter `cd` command. | `zoxide` |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
|
||||
### Tier 3: Desktop & GUI Applications
|
||||
|
||||
Standard desktop applications.
|
||||
|
||||
| Application Name | Installed Via | Notes | NixOS Package Name |
|
||||
| ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- |
|
||||
| LibreOffice | `apt` | Office suite. | `libreoffice` |
|
||||
| Flameshot | `apt` | Screenshot tool. | `flameshot` |
|
||||
| VLC | `apt` | Media player. | `vlc` |
|
||||
| Spotify | `snap` | Music player. | `spotify` |
|
||||
| Timeshift | `apt` | System restore utility. | `timeshift` |
|
||||
| GNOME Apps (various) | `apt` | Calculator, Clocks, etc. | Handled by `services.xserver.desktopManager.gnome.enable = true;` |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
## Plan for Other Packages
|
||||
|
||||
- **System Libraries:** The vast majority of packages listed in the log are system libraries (files ending in `...:amd64`, `...-dev`, `lib...`). These will be managed automatically by NixOS as dependencies for the applications you choose to install. You do not need to list them manually.
|
||||
- **Snap Packages:** All applications installed via `snap` will need to be replaced with their NixOS/Flathub equivalents. NixOS does not support Snap out of the box. The list above includes the most important ones.
|
||||
- **De-duplication:** Many packages are related (e.g., `g++`, `gcc`, `cpp`). In NixOS, installing the `gcc` package will provide the necessary toolchain.
|
||||
|
||||
**Next Step:** Use this document as a worksheet to build the `environment.systemPackages` list in the `configuration.nix` file.
|
||||
105
docs/03_file_migration_guide.md
Normal file
105
docs/03_file_migration_guide.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Phase 3: File Migration Scripting Guide
|
||||
|
||||
**Objective:** To prepare for the physical relocation of user data from the old directory structures to the new, consolidated structure on the NixOS system.
|
||||
|
||||
**Prerequisite:** A full analysis of the disk and file reconnaissance log (`logs/01_system_recon.log`) must be complete. The target directory structure should be agreed upon.
|
||||
|
||||
**Core Principle:** We will not move files directly. We will write a script that **copies** the files. The original data will be left untouched until the new NixOS system is fully configured and the copied data is verified. We will also implement a `--dry-run` feature for safety.
|
||||
|
||||
---
|
||||
|
||||
### Target Directory for Staging
|
||||
|
||||
To avoid disturbing the existing file structure on the 2.7TB drive, the migration script should consolidate all files from the Windows and old Ubuntu partitions into a single, new directory.
|
||||
|
||||
- **Staging Directory:** `/mnt/ubuntu_storage_3TB/migration_staging`
|
||||
|
||||
The script's primary purpose is to copy data from the other drives *into* this location. From there, you can organize it manually at your leisure after the migration is complete.
|
||||
|
||||
---
|
||||
|
||||
|
||||
### Instructions for Operator (Human or AI)
|
||||
|
||||
Your task is to create a shell script named `scripts/02_migrate_files.sh`. This script will contain a series of `rsync` commands to copy data from the source drives to the target directories.
|
||||
|
||||
#### 1. Script Requirements
|
||||
|
||||
- **Shebang:** The script must start with `#!/bin/bash`.
|
||||
- **Safety:** The script should not perform any operations if run as root without a specific override.
|
||||
- **Dry-Run Flag:** The script must accept a `--dry-run` argument. If this flag is present, all `rsync` commands should be executed with the `--dry-run` flag, which shows what would be done without making any actual changes.
|
||||
- **Verbosity:** All commands should be verbose (`-v`) and output human-readable sizes (`-h`) so the user can see the progress.
|
||||
- **Logging:** The script should log its output to a file in the `logs/` directory.
|
||||
|
||||
#### 2. Source Data Locations
|
||||
|
||||
The script will need to access data from the following locations. These drives will be mounted on the running NixOS system *before* the script is executed (as defined in `configuration.nix`).
|
||||
|
||||
- **Primary Ubuntu Home:** `/home/sam/` on the old root partition. (This will need to be mounted temporarily during migration).
|
||||
- **Ubuntu Storage Drive:** The contents of `/dev/sdd1` (which will become `/data`). The script will mostly be organizing files *within* this drive.
|
||||
- **Windows Storage Drive:** `/mnt/windows-storage` (mounted from `/dev/sdb2`).
|
||||
- **Windows User Folders:** The script may need to access `C:\Users\<YourUsername>` from one of the `ntfs` partitions.
|
||||
|
||||
#### 3. `rsync` Command Structure
|
||||
|
||||
Use the `rsync` command for all file copy operations. It is efficient, safe, and preserves metadata.
|
||||
|
||||
**Example `rsync` command for the script:**
|
||||
```bash
|
||||
# -a: archive mode (preserves permissions, ownership, etc.)
|
||||
# -v: verbose
|
||||
# -h: human-readable numbers
|
||||
# --progress: show progress during transfer
|
||||
# --exclude='*.tmp': example of excluding files
|
||||
|
||||
rsync -avh --progress --exclude='cache' /path/to/source/documents/ /data/work/
|
||||
```
|
||||
|
||||
#### 4. Script Skeleton (to be created in `scripts/02_migrate_files.sh`)
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
# ---
|
||||
# Configuration ---
|
||||
# ---
|
||||
LOG_FILE="logs/02_file_migration.log"
|
||||
DRY_RUN=""
|
||||
|
||||
# Check for --dry-run flag
|
||||
if [ "$1" == "--dry-run" ]; then
|
||||
DRY_RUN="--dry-run"
|
||||
echo "---
|
||||
PERFORMING DRY RUN ---"
|
||||
fi
|
||||
|
||||
# ---
|
||||
# Helper Functions ---
|
||||
# ---
|
||||
log() {
|
||||
echo "$1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
# ---
|
||||
# Main Execution ---
|
||||
# ---
|
||||
log "Starting file migration script..."
|
||||
|
||||
# Create target directories
|
||||
log "Creating target directories..."
|
||||
mkdir -p $DRY_RUN /data/personal /data/work /data/dev /data/backups /data/media
|
||||
|
||||
# ---
|
||||
# Migration Commands ---
|
||||
# ---
|
||||
# Add rsync commands here. Be specific.
|
||||
|
||||
# Example:
|
||||
# log "Migrating Documents from Windows..."
|
||||
# rsync -avh $DRY_RUN /mnt/windows-storage/Users/Sam/Documents/ /data/work/project-archives/
|
||||
|
||||
|
||||
log "File migration script finished."
|
||||
```
|
||||
|
||||
**Next Step:** A developer or another AI instance will now write the full `scripts/02_migrate_files.sh` script based on these instructions and a deeper analysis of the file contents revealed in `logs/02_deeper_scan.log`.
|
||||
40
docs/05_migration_status_and_next_steps.md
Normal file
40
docs/05_migration_status_and_next_steps.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Migration Status and Next Steps (Jan 28, 2026)
|
||||
|
||||
This document summarizes the current status of the NixOS migration project and outlines the remaining critical steps.
|
||||
|
||||
## Current Status
|
||||
|
||||
**Phase 1: Data Staging and Relocation - COMPLETE**
|
||||
|
||||
* **Initial Data Review:** Identified and confirmed that primary user personal files (Documents, Pictures, Music, Videos, Downloads) were largely already present in `/data/personal`.
|
||||
* **Missing Project Data Identified:** Discovered missing web projects (XAMPP `htdocs`) and IoT projects (`frei0r`) from the old Windows drive (`/media/sam/8294CD2994CD2111`).
|
||||
* **Data Staging Completed:** Successfully copied the missing web projects to `/data/work/htdocs` and IoT projects to `/data/work/frei0r`. The `Espressif` toolchain was intentionally excluded.
|
||||
* **Critical Data Relocation:** Both the entire `/data` directory (containing all staged user data, total ~86GB) and the `nixos-migration` project directory were successfully copied from the original Ubuntu OS drive to the external USB drive: `/media/sam/Integral300/`. This is crucial for safeguarding data before the main drive is formatted.
|
||||
|
||||
**Phase 2: Deep System Reconnaissance - COMPLETE**
|
||||
|
||||
* A comprehensive `04_nixos_recon.sh` script was created and executed.
|
||||
* Detailed logs (`logs/04_nixos_recon.log`) have been generated, containing:
|
||||
* Lists of all installed APT and Snap packages.
|
||||
* Information on active systemd services and timers (system-wide and user-specific).
|
||||
* Output from Docker commands (version, info, running containers, images, volumes) and a search for `docker-compose.yml` files.
|
||||
* Analysis of shell history for frequently used command-line tools.
|
||||
* Lists of manually installed binaries in `/usr/local/bin`, `~/bin`, and `~/.local/bin`.
|
||||
|
||||
**Gitea Archival - COMPLETE**
|
||||
|
||||
* The essential `logs/` and `results/` directories from this `nixos-migration` project have been successfully pushed to the `nixos-4screen` Gitea repository (`ssh://git@gitea.lab.audasmedia.com.au:2222/sam/nixos-4screen.git`). This ensures the reconnaissance data and any future NixOS configuration templates are safely version-controlled.
|
||||
|
||||
## Next Steps / Remaining Considerations
|
||||
|
||||
1. **Review All Reconnaissance Logs:** A thorough manual review of all logs (`04_nixos_recon.log` and `07_deep_cli_scan.log`) is essential to build your final NixOS configurations. The deep scan successfully identified numerous Cargo-installed CLI tools like `atuin`, `starship`, `zellij`, `yazi`, etc.
|
||||
|
||||
2. **Build `configuration.nix`:** Use the `results/generated_configuration.nix` as a starting template. Cross-reference with the logs to add any missing system-wide packages and services.
|
||||
|
||||
3. **Build `home.nix`:** A new draft, `results/generated_home.nix`, has been created. This file is a comprehensive template for using Home Manager to declaratively build your entire terminal environment, including Zsh, Oh My Zsh, Starship, and all the CLI tools discovered in the deep scan.
|
||||
|
||||
4. **Backup of Local Application Data (See `06_application_data_notes.md`):** Ensure critical items like GPG/SSH keys are securely backed up.
|
||||
|
||||
5. **Fireship Desktop App:** The "fireship" application was not found via standard package managers or `.desktop` files. It is likely an AppImage. You will need to re-download this manually on your new NixOS system.
|
||||
|
||||
Once these review steps are complete, you will be ready to begin the NixOS installation.
|
||||
18
docs/06_application_data_notes.md
Normal file
18
docs/06_application_data_notes.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Application Data Notes for NixOS Migration
|
||||
|
||||
This document outlines considerations for application-specific data that may need special handling during the NixOS migration.
|
||||
|
||||
## Important Considerations:
|
||||
|
||||
* **GPG Keys:** Your GnuPG keys are critical for cryptographic operations (e.g., signing Git commits, encrypting files). These are typically stored in `~/.gnupg/`. It is paramount to ensure these keys are backed up securely.
|
||||
* **Action:** Verify that your `~/.gnupg/` directory is either included in a secure backup separate from `/data` (e.g., an encrypted archive) or that you have a recovery method (e.g., revoked subkeys, passphrase-protected master key backup) that is outside of this system.
|
||||
|
||||
* **SSH Keys:** Your SSH keys (typically in `~/.ssh/`) are used for secure remote access (e.g., to Gitea, other servers). While you've indicated dotfiles will be managed, SSH private keys should *never* be committed directly to a public repository.
|
||||
* **Action:** Confirm that you have a secure backup of your `~/.ssh/` directory, especially your private keys, in a location separate from `/data` (e.g., an encrypted USB stick, a secure password manager). These keys should be restored to the new NixOS system as part of your `home-manager` setup or manually.
|
||||
|
||||
## Exclusions (No Action Required):
|
||||
|
||||
* **Thunderbird Email:** You have confirmed that Thunderbird uses Gmail in the cloud. No local migration of email data is required.
|
||||
* **Google Chrome / Mozilla Firefox Profiles:** You have confirmed that browser data (bookmarks, passwords, extensions) are synced via your accounts. No local migration of browser profiles is required.
|
||||
|
||||
This document serves as a reminder to address these specific local application data points when configuring your new NixOS environment.
|
||||
3102
logs/01_system_recon.log
Normal file
3102
logs/01_system_recon.log
Normal file
File diff suppressed because it is too large
Load Diff
51261
logs/03_find_and_sync_data.log
Normal file
51261
logs/03_find_and_sync_data.log
Normal file
File diff suppressed because one or more lines are too long
3145
logs/04_nixos_recon.log
Normal file
3145
logs/04_nixos_recon.log
Normal file
File diff suppressed because it is too large
Load Diff
808
logs/05_hardware_scan.log
Normal file
808
logs/05_hardware_scan.log
Normal file
@@ -0,0 +1,808 @@
|
||||
sam-4screen-desktop
|
||||
description: Desktop Computer
|
||||
product: Precision Tower 3620 (06B7)
|
||||
vendor: Dell Inc.
|
||||
serial: GJD72K2
|
||||
width: 64 bits
|
||||
capabilities: smbios-3.0.0 dmi-3.0.0 smp vsyscall32
|
||||
configuration: boot=normal chassis=desktop family=Precision sku=06B7 uuid=4c4c4544-004a-4410-8037-c7c04f324b32
|
||||
*-core
|
||||
description: Motherboard
|
||||
product: 0MWYPT
|
||||
vendor: Dell Inc.
|
||||
physical id: 0
|
||||
version: A01
|
||||
serial: /GJD72K2/CNFCW0077E00CW/
|
||||
*-firmware
|
||||
description: BIOS
|
||||
vendor: Dell Inc.
|
||||
physical id: 0
|
||||
version: 2.30.0
|
||||
date: 04/08/2024
|
||||
size: 64KiB
|
||||
capacity: 16MiB
|
||||
capabilities: pci pnp upgrade shadowing cdboot bootselect edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification netboot uefi
|
||||
*-memory
|
||||
description: System Memory
|
||||
physical id: 9
|
||||
slot: System board or motherboard
|
||||
size: 64GiB
|
||||
*-bank:0
|
||||
description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0.5 ns)
|
||||
product: M378A2K43BB1-CPB
|
||||
vendor: Samsung
|
||||
physical id: 0
|
||||
serial: 9722AFF3
|
||||
slot: DIMM1
|
||||
size: 16GiB
|
||||
width: 64 bits
|
||||
clock: 2133MHz (0.5ns)
|
||||
*-bank:1
|
||||
description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0.5 ns)
|
||||
product: M378A2K43BB1-CPB
|
||||
vendor: Samsung
|
||||
physical id: 1
|
||||
serial: 9722B079
|
||||
slot: DIMM2
|
||||
size: 16GiB
|
||||
width: 64 bits
|
||||
clock: 2133MHz (0.5ns)
|
||||
*-bank:2
|
||||
description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0.5 ns)
|
||||
product: M378A2K43BB1-CPB
|
||||
vendor: Samsung
|
||||
physical id: 2
|
||||
serial: 9722B071
|
||||
slot: DIMM3
|
||||
size: 16GiB
|
||||
width: 64 bits
|
||||
clock: 2133MHz (0.5ns)
|
||||
*-bank:3
|
||||
description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0.5 ns)
|
||||
product: M378A2K43BB1-CPB
|
||||
vendor: Samsung
|
||||
physical id: 3
|
||||
serial: 9722B070
|
||||
slot: DIMM4
|
||||
size: 16GiB
|
||||
width: 64 bits
|
||||
clock: 2133MHz (0.5ns)
|
||||
*-cache:0
|
||||
description: L1 cache
|
||||
physical id: f
|
||||
slot: L1 Cache
|
||||
size: 256KiB
|
||||
capacity: 256KiB
|
||||
capabilities: synchronous internal write-back unified
|
||||
configuration: level=1
|
||||
*-cache:1
|
||||
description: L2 cache
|
||||
physical id: 10
|
||||
slot: L2 Cache
|
||||
size: 1MiB
|
||||
capacity: 1MiB
|
||||
capabilities: synchronous internal write-back unified
|
||||
configuration: level=2
|
||||
*-cache:2
|
||||
description: L3 cache
|
||||
physical id: 11
|
||||
slot: L3 Cache
|
||||
size: 8MiB
|
||||
capacity: 8MiB
|
||||
capabilities: synchronous internal write-back unified
|
||||
configuration: level=3
|
||||
*-cpu
|
||||
description: CPU
|
||||
product: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
|
||||
vendor: Intel Corp.
|
||||
physical id: 12
|
||||
bus info: cpu@0
|
||||
version: 6.158.9
|
||||
serial: To Be Filled By O.E.M.
|
||||
slot: U3E1
|
||||
size: 4399MHz
|
||||
capacity: 4500MHz
|
||||
width: 64 bits
|
||||
clock: 100MHz
|
||||
capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities cpufreq
|
||||
configuration: cores=4 enabledcores=4 microcode=248 threads=8
|
||||
*-pci
|
||||
description: Host bridge
|
||||
product: Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
|
||||
vendor: Intel Corporation
|
||||
physical id: 100
|
||||
bus info: pci@0000:00:00.0
|
||||
version: 05
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
configuration: driver=skl_uncore
|
||||
resources: irq:0
|
||||
*-pci:0
|
||||
description: PCI bridge
|
||||
product: 6th-10th Gen Core Processor PCIe Controller (x16)
|
||||
vendor: Intel Corporation
|
||||
physical id: 1
|
||||
bus info: pci@0000:00:01.0
|
||||
version: 05
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
|
||||
configuration: driver=pcieport
|
||||
resources: irq:121 ioport:e000(size=4096) memory:ee000000-ef0fffff ioport:d0000000(size=301989888)
|
||||
*-display
|
||||
description: VGA compatible controller
|
||||
product: GP107GL [Quadro P620]
|
||||
vendor: NVIDIA Corporation
|
||||
physical id: 0
|
||||
bus info: pci@0000:01:00.0
|
||||
logical name: /dev/fb0
|
||||
version: a1
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
|
||||
configuration: depth=32 driver=nvidia latency=0 resolution=1680,1050
|
||||
resources: irq:145 memory:ee000000-eeffffff memory:d0000000-dfffffff memory:e0000000-e1ffffff ioport:e000(size=128) memory:c0000-dffff
|
||||
*-multimedia
|
||||
description: Audio device
|
||||
product: GP107GL High Definition Audio Controller
|
||||
vendor: NVIDIA Corporation
|
||||
physical id: 0.1
|
||||
bus info: pci@0000:01:00.1
|
||||
logical name: card0
|
||||
logical name: /dev/snd/controlC0
|
||||
logical name: /dev/snd/hwC0D0
|
||||
logical name: /dev/snd/pcmC0D3p
|
||||
logical name: /dev/snd/pcmC0D7p
|
||||
logical name: /dev/snd/pcmC0D8p
|
||||
logical name: /dev/snd/pcmC0D9p
|
||||
version: a1
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi pciexpress bus_master cap_list
|
||||
configuration: driver=snd_hda_intel latency=0
|
||||
resources: irq:17 memory:ef080000-ef083fff
|
||||
*-input:0
|
||||
product: HDA NVidia HDMI/DP,pcm=3
|
||||
physical id: 0
|
||||
logical name: input18
|
||||
logical name: /dev/input/event14
|
||||
*-input:1
|
||||
product: HDA NVidia HDMI/DP,pcm=7
|
||||
physical id: 1
|
||||
logical name: input19
|
||||
logical name: /dev/input/event15
|
||||
*-input:2
|
||||
product: HDA NVidia HDMI/DP,pcm=8
|
||||
physical id: 2
|
||||
logical name: input20
|
||||
logical name: /dev/input/event16
|
||||
*-input:3
|
||||
product: HDA NVidia HDMI/DP,pcm=9
|
||||
physical id: 3
|
||||
logical name: input21
|
||||
logical name: /dev/input/event17
|
||||
*-display
|
||||
description: VGA compatible controller
|
||||
product: HD Graphics 630
|
||||
vendor: Intel Corporation
|
||||
physical id: 2
|
||||
bus info: pci@0000:00:02.0
|
||||
version: 04
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: pciexpress msi pm vga_controller bus_master cap_list
|
||||
configuration: driver=i915 latency=0
|
||||
resources: irq:144 memory:ed000000-edffffff memory:c0000000-cfffffff ioport:f000(size=64)
|
||||
*-usb
|
||||
description: USB controller
|
||||
product: 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller
|
||||
vendor: Intel Corporation
|
||||
physical id: 14
|
||||
bus info: pci@0000:00:14.0
|
||||
version: 31
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi xhci bus_master cap_list
|
||||
configuration: driver=xhci_hcd latency=0
|
||||
resources: irq:124 memory:ef330000-ef33ffff
|
||||
*-usbhost:0
|
||||
product: xHCI Host Controller
|
||||
vendor: Linux 6.14.0-37-generic xhci-hcd
|
||||
physical id: 0
|
||||
bus info: usb@1
|
||||
logical name: usb1
|
||||
version: 6.14
|
||||
capabilities: usb-2.00
|
||||
configuration: driver=hub slots=16 speed=480Mbit/s
|
||||
*-usb:0
|
||||
description: Mass storage device
|
||||
product: Cypress AT2LP
|
||||
vendor: Cypress Semiconductor Corp.
|
||||
physical id: 1
|
||||
bus info: usb@1:1
|
||||
logical name: scsi5
|
||||
version: 2.40
|
||||
serial: DEF10FD70D1E
|
||||
capabilities: usb-2.00 scsi emulated scsi-host
|
||||
configuration: driver=ums-cypress maxpower=2mA speed=480Mbit/s
|
||||
*-disk
|
||||
description: SCSI Disk
|
||||
product: 00JB-22KFA0
|
||||
vendor: WDC WD32
|
||||
physical id: 0.0.0
|
||||
bus info: scsi@5:0.0.0
|
||||
logical name: /dev/sdc
|
||||
version: 0000
|
||||
serial: W -D
|
||||
size: 298GiB (320GB)
|
||||
capabilities: partitioned partitioned:dos
|
||||
configuration: logicalsectorsize=512 sectorsize=512 signature=100b218d
|
||||
*-volume
|
||||
description: EXT4 volume
|
||||
vendor: Linux
|
||||
physical id: 1
|
||||
bus info: scsi@5:0.0.0,1
|
||||
logical name: /dev/sdc1
|
||||
logical name: /media/sam/Integral300
|
||||
version: 1.0
|
||||
serial: 27febd74-20aa-4a3a-92c1-6fdd1ad7e88e
|
||||
size: 298GiB
|
||||
capacity: 298GiB
|
||||
capabilities: primary journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
|
||||
configuration: created=2026-01-27 19:20:40 filesystem=ext4 label=Integral300 lastmountpoint=/media/sam/Integral300 modified=2026-01-28 12:50:32 mount.fstype=ext4 mount.options=rw,nosuid,nodev,relatime,errors=remount-ro mounted=2026-01-27 19:29:38 state=mounted
|
||||
*-usb:1
|
||||
description: Mass storage device
|
||||
product: WD5000BEVT-22ZAT
|
||||
vendor: WDC
|
||||
physical id: 2
|
||||
bus info: usb@1:2
|
||||
logical name: scsi4
|
||||
version: 3.00
|
||||
serial: 0010101E40000000
|
||||
capabilities: usb-2.00 scsi emulated scsi-host
|
||||
configuration: driver=usb-storage maxpower=2mA speed=480Mbit/s
|
||||
*-disk
|
||||
description: SCSI Disk
|
||||
product: WD5000BEVT-22ZAT
|
||||
vendor: WDC
|
||||
physical id: 0.0.0
|
||||
bus info: scsi@4:0.0.0
|
||||
logical name: /dev/sdb
|
||||
version: 3.00
|
||||
serial: WD-WXNY08ND2684
|
||||
size: 465GiB (500GB)
|
||||
capabilities: partitioned partitioned:dos
|
||||
configuration: ansiversion=4 logicalsectorsize=512 sectorsize=512 signature=1ac8f43c
|
||||
*-volume
|
||||
description: EXT4 volume
|
||||
vendor: Linux
|
||||
physical id: 1
|
||||
bus info: scsi@4:0.0.0,1
|
||||
logical name: /dev/sdb1
|
||||
version: 1.0
|
||||
serial: 4f9c4bd5-fea5-408f-9370-731fc095da3f
|
||||
size: 465GiB
|
||||
capacity: 465GiB
|
||||
capabilities: primary journaled extended_attributes large_files huge_files dir_nlink 64bit extents ext4 ext2 initialized
|
||||
configuration: created=2026-01-27 18:46:14 filesystem=ext4 label=TempBackup modified=2026-01-27 18:46:39 state=clean
|
||||
*-usb:2
|
||||
description: Keyboard
|
||||
product: 2.4G Mouse Consumer Control
|
||||
vendor: SHARKOON Technologies GmbH
|
||||
physical id: 7
|
||||
bus info: usb@1:7
|
||||
logical name: input10
|
||||
logical name: /dev/input/event7
|
||||
logical name: input6
|
||||
logical name: /dev/input/event3
|
||||
logical name: input6::capslock
|
||||
logical name: input6::compose
|
||||
logical name: input6::kana
|
||||
logical name: input6::numlock
|
||||
logical name: input6::scrolllock
|
||||
logical name: input7
|
||||
logical name: /dev/input/event4
|
||||
logical name: input8
|
||||
logical name: /dev/input/event5
|
||||
logical name: /dev/input/mouse0
|
||||
logical name: input9
|
||||
logical name: /dev/input/event6
|
||||
version: 2.00
|
||||
capabilities: usb-1.10 usb
|
||||
configuration: driver=usbhid maxpower=100mA speed=12Mbit/s
|
||||
*-usb:3
|
||||
description: Keyboard
|
||||
product: umux.com X.Tips V4s Keyboard
|
||||
vendor: umux.com
|
||||
physical id: 8
|
||||
bus info: usb@1:8
|
||||
logical name: input12
|
||||
logical name: /dev/input/event8
|
||||
logical name: input12::capslock
|
||||
logical name: input12::compose
|
||||
logical name: input12::kana
|
||||
logical name: input12::numlock
|
||||
logical name: input12::scrolllock
|
||||
logical name: input13
|
||||
logical name: /dev/input/event9
|
||||
logical name: /dev/input/mouse1
|
||||
logical name: input14
|
||||
logical name: /dev/input/event10
|
||||
logical name: input15
|
||||
logical name: /dev/input/event11
|
||||
logical name: input16
|
||||
logical name: /dev/input/event12
|
||||
logical name: input16::capslock
|
||||
logical name: input16::compose
|
||||
logical name: input16::kana
|
||||
logical name: input16::numlock
|
||||
logical name: input16::scrolllock
|
||||
version: 0.01
|
||||
serial: vial:f64c2b3c
|
||||
capabilities: usb-2.00 usb
|
||||
configuration: driver=usbhid maxpower=500mA speed=12Mbit/s
|
||||
*-usb:4
|
||||
description: Mass storage device
|
||||
product: USB 2.0 SATA BRIDGE
|
||||
vendor: Super Top
|
||||
physical id: a
|
||||
bus info: usb@1:a
|
||||
version: 1.40
|
||||
serial: MA6116VE4018
|
||||
capabilities: usb-2.00 scsi
|
||||
configuration: driver=usb-storage maxpower=2mA speed=480Mbit/s
|
||||
*-usbhost:1
|
||||
product: xHCI Host Controller
|
||||
vendor: Linux 6.14.0-37-generic xhci-hcd
|
||||
physical id: 1
|
||||
bus info: usb@2
|
||||
logical name: usb2
|
||||
version: 6.14
|
||||
capabilities: usb-3.00
|
||||
configuration: driver=hub slots=10 speed=5000Mbit/s
|
||||
*-generic
|
||||
description: Signal processing controller
|
||||
product: 100 Series/C230 Series Chipset Family Thermal Subsystem
|
||||
vendor: Intel Corporation
|
||||
physical id: 14.2
|
||||
bus info: pci@0000:00:14.2
|
||||
version: 31
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi cap_list
|
||||
configuration: driver=intel_pch_thermal latency=0
|
||||
resources: irq:18 memory:ef34e000-ef34efff
|
||||
*-communication
|
||||
description: Communication controller
|
||||
product: 100 Series/C230 Series Chipset Family MEI Controller #1
|
||||
vendor: Intel Corporation
|
||||
physical id: 16
|
||||
bus info: pci@0000:00:16.0
|
||||
version: 31
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi bus_master cap_list
|
||||
configuration: driver=mei_me latency=0
|
||||
resources: irq:133 memory:ef34d000-ef34dfff
|
||||
*-sata
|
||||
description: SATA controller
|
||||
product: Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode]
|
||||
vendor: Intel Corporation
|
||||
physical id: 17
|
||||
bus info: pci@0000:00:17.0
|
||||
logical name: scsi1
|
||||
logical name: scsi2
|
||||
version: 31
|
||||
width: 32 bits
|
||||
clock: 66MHz
|
||||
capabilities: sata msi pm ahci_1.0 bus_master cap_list emulated
|
||||
configuration: driver=ahci latency=0
|
||||
resources: irq:132 memory:ef348000-ef349fff memory:ef34c000-ef34c0ff ioport:f090(size=8) ioport:f080(size=4) ioport:f060(size=32) memory:ef34b000-ef34b7ff
|
||||
*-disk
|
||||
description: ATA Disk
|
||||
product: Patriot Burst El
|
||||
physical id: 0
|
||||
bus info: scsi@1:0.0.0
|
||||
logical name: /dev/sda
|
||||
version: 9A0
|
||||
serial: PBEABBB23090814043
|
||||
size: 223GiB (240GB)
|
||||
capabilities: gpt-1.00 partitioned partitioned:gpt
|
||||
configuration: ansiversion=5 guid=d72b17f4-a649-40ca-935d-cae1eeb1c85d logicalsectorsize=512 sectorsize=512
|
||||
*-volume:0
|
||||
description: reserved partition
|
||||
vendor: Windows
|
||||
physical id: 1
|
||||
bus info: scsi@1:0.0.0,1
|
||||
logical name: /dev/sda1
|
||||
serial: 38c6b6b3-fdb2-4d43-ba15-9c275fbec985
|
||||
capacity: 15MiB
|
||||
capabilities: nofs
|
||||
configuration: name=Microsoft reserved partition
|
||||
*-volume:1
|
||||
description: Windows NTFS volume
|
||||
vendor: Windows
|
||||
physical id: 2
|
||||
bus info: scsi@1:0.0.0,2
|
||||
logical name: /dev/sda2
|
||||
version: 3.1
|
||||
serial: b6da3c24-6685-8944-8d4a-555b3dd3a023
|
||||
size: 223GiB
|
||||
capacity: 223GiB
|
||||
capabilities: ntfs initialized
|
||||
configuration: clustersize=4096 created=2024-06-16 15:40:40 filesystem=ntfs label=Back Up name=Basic data partition state=clean
|
||||
*-cdrom
|
||||
description: DVD-RAM writer
|
||||
product: DVD+-RW GHB0N
|
||||
vendor: HL-DT-ST
|
||||
physical id: 1
|
||||
bus info: scsi@2:0.0.0
|
||||
logical name: /dev/cdrom
|
||||
logical name: /dev/sr0
|
||||
version: A1C0
|
||||
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
|
||||
configuration: ansiversion=5 status=nodisc
|
||||
*-pci:1
|
||||
description: PCI bridge
|
||||
product: 100 Series/C230 Series Chipset Family PCI Express Root Port #17
|
||||
vendor: Intel Corporation
|
||||
physical id: 1b
|
||||
bus info: pci@0000:00:1b.0
|
||||
version: f1
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||
configuration: driver=pcieport
|
||||
resources: irq:122 ioport:d000(size=4096) memory:ef200000-ef2fffff
|
||||
*-nvme
|
||||
description: NVMe device
|
||||
product: PM951 NVMe SAMSUNG 1024GB
|
||||
vendor: Samsung Electronics Co Ltd
|
||||
physical id: 0
|
||||
bus info: pci@0000:02:00.0
|
||||
logical name: /dev/nvme0
|
||||
version: BXV77D0Q
|
||||
serial: S2FZNXAH301424
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: nvme pm msi pciexpress msix nvm_express bus_master cap_list
|
||||
configuration: driver=nvme latency=0 nqn=nqn.2014.08.org.nvmexpress:144d144d S2FZNXAH301424PM951 NVMe SAMSUNG 1024GB state=live
|
||||
resources: irq:16 memory:ef200000-ef203fff ioport:d000(size=256)
|
||||
*-namespace:0
|
||||
description: NVMe disk
|
||||
physical id: 0
|
||||
logical name: hwmon1
|
||||
*-namespace:1
|
||||
description: NVMe disk
|
||||
physical id: 2
|
||||
logical name: /dev/ng0n1
|
||||
*-namespace:2
|
||||
description: NVMe disk
|
||||
physical id: 1
|
||||
bus info: nvme@0:1
|
||||
logical name: /dev/nvme0n1
|
||||
size: 953GiB (1024GB)
|
||||
capabilities: gpt-1.00 partitioned partitioned:gpt
|
||||
configuration: guid=3c752166-f3f5-4ee6-b50a-b240d0fd272d logicalsectorsize=512 sectorsize=512 wwid=nvme.144d-2020202020205332465a4e584148333031343234-504d393531204e564d652053414d53554e4720313032344742-00000001
|
||||
*-volume:0
|
||||
description: Windows FAT volume
|
||||
vendor: MSDOS5.0
|
||||
physical id: 1
|
||||
bus info: nvme@0:1,1
|
||||
logical name: /dev/nvme0n1p1
|
||||
logical name: /boot/efi
|
||||
version: FAT32
|
||||
serial: 94cc-9da4
|
||||
size: 95MiB
|
||||
capacity: 99MiB
|
||||
capabilities: boot nomount fat initialized
|
||||
configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro name=EFI system partition state=mounted
|
||||
*-volume:1
|
||||
description: reserved partition
|
||||
vendor: Windows
|
||||
physical id: 2
|
||||
bus info: nvme@0:1,2
|
||||
logical name: /dev/nvme0n1p2
|
||||
serial: c548d0ae-4d8e-49ba-a9e8-e33d6b9ec973
|
||||
capacity: 15MiB
|
||||
capabilities: nofs nomount
|
||||
configuration: name=Microsoft reserved partition
|
||||
*-volume:2
|
||||
description: Windows NTFS volume
|
||||
vendor: Windows
|
||||
physical id: 3
|
||||
bus info: nvme@0:1,3
|
||||
logical name: /dev/nvme0n1p3
|
||||
logical name: /media/sam/8294CD2994CD2111
|
||||
version: 3.1
|
||||
serial: 2ea3692d-e9bc-c246-b7e4-28159a0c8020
|
||||
size: 503GiB
|
||||
capacity: 503GiB
|
||||
capabilities: ntfs initialized
|
||||
configuration: clustersize=4096 created=2024-05-18 15:25:31 filesystem=ntfs mount.fstype=fuseblk mount.options=rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 name=Basic data partition state=mounted
|
||||
*-volume:3
|
||||
description: Windows NTFS volume
|
||||
vendor: Windows
|
||||
physical id: 4
|
||||
bus info: nvme@0:1,4
|
||||
logical name: /dev/nvme0n1p4
|
||||
version: 3.1
|
||||
serial: 1aa2-eef1
|
||||
size: 522MiB
|
||||
capacity: 529MiB
|
||||
capabilities: boot precious nomount ntfs initialized
|
||||
configuration: clustersize=4096 created=2024-05-17 21:30:36 filesystem=ntfs state=clean
|
||||
*-volume:4
|
||||
description: EXT4 volume
|
||||
vendor: Linux
|
||||
physical id: 5
|
||||
bus info: nvme@0:1,5
|
||||
logical name: /dev/nvme0n1p5
|
||||
logical name: /
|
||||
version: 1.0
|
||||
serial: 4e99904c-ce6f-4c3c-898a-e29cfc373489
|
||||
size: 449GiB
|
||||
capabilities: journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
|
||||
configuration: created=2025-06-12 21:59:53 filesystem=ext4 lastmountpoint=/ modified=2026-01-28 12:27:04 mount.fstype=ext4 mount.options=rw,relatime mounted=2026-01-26 18:06:38 state=mounted
|
||||
*-pci:2
|
||||
description: PCI bridge
|
||||
product: 100 Series/C230 Series Chipset Family PCI Express Root Port #1
|
||||
vendor: Intel Corporation
|
||||
physical id: 1c
|
||||
bus info: pci@0000:00:1c.0
|
||||
version: f1
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||
configuration: driver=pcieport
|
||||
resources: irq:123 memory:ef100000-ef1fffff
|
||||
*-pci
|
||||
description: PCI bridge
|
||||
product: XIO2001 PCI Express-to-PCI Bridge
|
||||
vendor: Texas Instruments
|
||||
physical id: 0
|
||||
bus info: pci@0000:03:00.0
|
||||
version: 00
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
|
||||
resources: memory:ef100000-ef1fffff
|
||||
*-network DISABLED
|
||||
description: Wireless interface
|
||||
product: RT3062 Wireless 802.11n 2T/2R
|
||||
vendor: Ralink corp.
|
||||
physical id: 2
|
||||
bus info: pci@0000:04:02.0
|
||||
logical name: wlp4s2
|
||||
version: 00
|
||||
serial: 80:1f:02:4f:18:ae
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm bus_master cap_list ethernet physical wireless
|
||||
configuration: broadcast=yes driver=rt2800pci driverversion=6.14.0-37-generic firmware=0.40 latency=32 link=no maxlatency=4 mingnt=2 multicast=yes wireless=IEEE 802.11
|
||||
resources: irq:18 memory:ef100000-ef10ffff
|
||||
*-isa
|
||||
description: ISA bridge
|
||||
product: C236 Chipset LPC/eSPI Controller
|
||||
vendor: Intel Corporation
|
||||
physical id: 1f
|
||||
bus info: pci@0000:00:1f.0
|
||||
version: 31
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: isa bus_master
|
||||
configuration: latency=0
|
||||
*-pnp00:00
|
||||
product: PnP device PNP0c02
|
||||
physical id: 0
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:01
|
||||
product: PnP device PNP0501
|
||||
physical id: 1
|
||||
capabilities: pnp
|
||||
configuration: driver=serial
|
||||
*-pnp00:02
|
||||
product: PnP device PNP0303
|
||||
physical id: 2
|
||||
capabilities: pnp
|
||||
configuration: driver=i8042 kbd
|
||||
*-pnp00:03
|
||||
product: PnP device PNP0f03
|
||||
physical id: 3
|
||||
capabilities: pnp
|
||||
configuration: driver=i8042 aux
|
||||
*-pnp00:04
|
||||
product: PnP device PNP0c02
|
||||
physical id: 4
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:05
|
||||
product: PnP device PNP0c02
|
||||
physical id: 5
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:06
|
||||
product: PnP device PNP0b00
|
||||
physical id: 6
|
||||
capabilities: pnp
|
||||
configuration: driver=rtc_cmos
|
||||
*-pnp00:07
|
||||
product: PnP device PNP0c02
|
||||
physical id: 7
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:08
|
||||
product: PnP device PNP0c02
|
||||
physical id: 8
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:09
|
||||
product: PnP device PNP0c02
|
||||
physical id: 9
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:0a
|
||||
product: PnP device PNP0c02
|
||||
physical id: a
|
||||
capabilities: pnp
|
||||
configuration: driver=system
|
||||
*-pnp00:0b
|
||||
product: PnP device PNP0c31
|
||||
physical id: b
|
||||
capabilities: pnp
|
||||
configuration: driver=tpm_tis
|
||||
*-memory UNCLAIMED
|
||||
description: Memory controller
|
||||
product: 100 Series/C230 Series Chipset Family Power Management Controller
|
||||
vendor: Intel Corporation
|
||||
physical id: 1f.2
|
||||
bus info: pci@0000:00:1f.2
|
||||
version: 31
|
||||
width: 32 bits
|
||||
clock: 33MHz (30.3ns)
|
||||
capabilities: bus_master
|
||||
configuration: latency=0
|
||||
resources: memory:ef344000-ef347fff
|
||||
*-multimedia
|
||||
description: Audio device
|
||||
product: 100 Series/C230 Series Chipset Family HD Audio Controller
|
||||
vendor: Intel Corporation
|
||||
physical id: 1f.3
|
||||
bus info: pci@0000:00:1f.3
|
||||
logical name: card1
|
||||
logical name: /dev/snd/controlC1
|
||||
logical name: /dev/snd/hwC1D0
|
||||
logical name: /dev/snd/hwC1D2
|
||||
logical name: /dev/snd/pcmC1D0c
|
||||
logical name: /dev/snd/pcmC1D0p
|
||||
logical name: /dev/snd/pcmC1D3p
|
||||
logical name: /dev/snd/pcmC1D7p
|
||||
logical name: /dev/snd/pcmC1D8p
|
||||
version: 31
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi bus_master cap_list
|
||||
configuration: driver=snd_hda_intel latency=32
|
||||
resources: irq:146 memory:ef340000-ef343fff memory:ef320000-ef32ffff
|
||||
*-input:0
|
||||
product: HDA Intel PCH Rear Mic
|
||||
physical id: 0
|
||||
logical name: input23
|
||||
logical name: /dev/input/event19
|
||||
*-input:1
|
||||
product: HDA Intel PCH Front Mic
|
||||
physical id: 1
|
||||
logical name: input24
|
||||
logical name: /dev/input/event20
|
||||
*-input:2
|
||||
product: HDA Intel PCH Line Out
|
||||
physical id: 2
|
||||
logical name: input25
|
||||
logical name: /dev/input/event21
|
||||
*-input:3
|
||||
product: HDA Intel PCH Front Headphone
|
||||
physical id: 3
|
||||
logical name: input26
|
||||
logical name: /dev/input/event22
|
||||
*-input:4
|
||||
product: HDA Intel PCH HDMI/DP,pcm=3
|
||||
physical id: 4
|
||||
logical name: input27
|
||||
logical name: /dev/input/event23
|
||||
*-input:5
|
||||
product: HDA Intel PCH HDMI/DP,pcm=7
|
||||
physical id: 5
|
||||
logical name: input28
|
||||
logical name: /dev/input/event24
|
||||
*-input:6
|
||||
product: HDA Intel PCH HDMI/DP,pcm=8
|
||||
physical id: 6
|
||||
logical name: input29
|
||||
logical name: /dev/input/event25
|
||||
*-serial
|
||||
description: SMBus
|
||||
product: 100 Series/C230 Series Chipset Family SMBus
|
||||
vendor: Intel Corporation
|
||||
physical id: 1f.4
|
||||
bus info: pci@0000:00:1f.4
|
||||
version: 31
|
||||
width: 64 bits
|
||||
clock: 33MHz
|
||||
configuration: driver=i801_smbus latency=0
|
||||
resources: irq:16 memory:ef34a000-ef34a0ff ioport:f040(size=32)
|
||||
*-network
|
||||
description: Ethernet interface
|
||||
product: Ethernet Connection (2) I219-LM
|
||||
vendor: Intel Corporation
|
||||
physical id: 1f.6
|
||||
bus info: pci@0000:00:1f.6
|
||||
logical name: enp0s31f6
|
||||
version: 31
|
||||
serial: d8:9e:f3:07:bf:05
|
||||
size: 1Gbit/s
|
||||
capacity: 1Gbit/s
|
||||
width: 32 bits
|
||||
clock: 33MHz
|
||||
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
|
||||
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.14.0-37-generic duplex=full firmware=0.8-4 ip=192.168.20.27 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
|
||||
resources: irq:143 memory:ef300000-ef31ffff
|
||||
*-scsi
|
||||
physical id: 1
|
||||
bus info: usb@1:10
|
||||
logical name: scsi7
|
||||
capabilities: emulated scsi-host
|
||||
configuration: driver=usb-storage
|
||||
*-disk
|
||||
description: SCSI Disk
|
||||
product: HTS541616J9SA00
|
||||
vendor: Hitachi
|
||||
physical id: 0.0.0
|
||||
bus info: scsi@7:0.0.0
|
||||
logical name: /dev/sde
|
||||
size: 149GiB (160GB)
|
||||
capabilities: partitioned partitioned:dos
|
||||
configuration: logicalsectorsize=512 sectorsize=512 signature=13991399
|
||||
*-volume
|
||||
description: EXT4 volume
|
||||
vendor: Linux
|
||||
physical id: 1
|
||||
bus info: scsi@7:0.0.0,1
|
||||
logical name: /dev/sde1
|
||||
logical name: /media/sam/XPSystemDrive
|
||||
version: 1.0
|
||||
serial: 82c994f1-9adb-49e4-ba1e-5b6e5ccbd49b
|
||||
size: 149GiB
|
||||
capacity: 149GiB
|
||||
capabilities: primary journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
|
||||
configuration: created=2026-01-27 20:36:08 filesystem=ext4 label=XPSystemDrive modified=2026-01-27 21:09:30 mount.fstype=ext4 mount.options=rw,nosuid,nodev,relatime,errors=remount-ro mounted=2026-01-27 21:09:30 state=mounted
|
||||
*-input:0
|
||||
product: Sleep Button
|
||||
physical id: 1
|
||||
logical name: input0
|
||||
logical name: /dev/input/event0
|
||||
capabilities: platform
|
||||
*-input:1
|
||||
product: Power Button
|
||||
physical id: 2
|
||||
logical name: input1
|
||||
logical name: /dev/input/event1
|
||||
capabilities: platform
|
||||
*-input:2
|
||||
product: Dell WMI hotkeys
|
||||
physical id: 3
|
||||
logical name: input17
|
||||
logical name: /dev/input/event13
|
||||
capabilities: platform
|
||||
*-input:3
|
||||
product: Power Button
|
||||
physical id: 4
|
||||
logical name: input2
|
||||
logical name: /dev/input/event2
|
||||
capabilities: platform
|
||||
*-input:4
|
||||
product: Video Bus
|
||||
physical id: 5
|
||||
logical name: input22
|
||||
logical name: /dev/input/event18
|
||||
capabilities: platform
|
||||
144
logs/06_netplan_config.log
Normal file
144
logs/06_netplan_config.log
Normal file
@@ -0,0 +1,144 @@
|
||||
--- Netplan Configuration ---
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml:network:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: version: 2
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: wifis:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: renderer: NetworkManager
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: match:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: name: "wlp4s2"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: addresses:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: - "192.168.20.27/24"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: nameservers:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: addresses:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: - 192.168.20.35
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: - 192.168.20.13
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: dhcp6: true
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: access-points:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: "Aussie Broadband 8729":
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: auth:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: key-management: "psk"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: password: "Ffdfmunfca"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: uuid: "31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: name: "Aussie Broadband 8729"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: passthrough:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: connection.timestamp: "1766738969"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: ipv4.address1: "192.168.20.27/24,192.168.20.1"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: ipv4.method: "manual"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: ipv6.addr-gen-mode: "default"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: ipv6.ip6-privacy: "-1"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: proxy._: ""
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: uuid: "31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4"
|
||||
/etc/netplan/90-NM-31ac1c6a-4de8-4a3e-929f-aaec5cd53cf4.yaml: name: "Aussie Broadband 8729"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml:network:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: version: 2
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: ethernets:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: renderer: NetworkManager
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: match:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: name: "enp0s31f6"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: addresses:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: - "192.168.20.27/24"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: nameservers:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: addresses:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: - 192.168.20.35
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: - 192.168.20.13
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: dhcp6: true
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: mtu: 1500
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: wakeonlan: true
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: uuid: "afb4bbc6-fac5-31f5-8cdc-a466b8b74765"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: name: "Wired connection 1"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: passthrough:
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: connection.autoconnect: "false"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: connection.autoconnect-priority: "-999"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: connection.timestamp: "1766741824"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: ethernet.wake-on-lan: "64"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: ipv4.address1: "192.168.20.27/24,192.168.20.1"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: ipv4.method: "manual"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: ipv6.addr-gen-mode: "default"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: ipv6.ip6-privacy: "-1"
|
||||
/etc/netplan/90-NM-afb4bbc6-fac5-31f5-8cdc-a466b8b74765.yaml: proxy._: ""
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml:network:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: version: 2
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: wifis:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: renderer: NetworkManager
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: match:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: name: "wlp4s2"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: dhcp4: true
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: dhcp6: true
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: access-points:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: "NetComm Wireless":
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: auth:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: key-management: "psk"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: password: "Ffdfmunfca"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: uuid: "ecfc8be2-ba84-46e9-89c6-75bcb35cba55"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: name: "NetComm Wireless"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: passthrough:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: connection.timestamp: "1769032320"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: wifi-security.auth-alg: "open"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: ipv6.addr-gen-mode: "default"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: ipv6.ip6-privacy: "-1"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: proxy._: ""
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: uuid: "ecfc8be2-ba84-46e9-89c6-75bcb35cba55"
|
||||
/etc/netplan/90-NM-ecfc8be2-ba84-46e9-89c6-75bcb35cba55.yaml: name: "NetComm Wireless"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml:network:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: version: 2
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: wifis:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: NM-bf81f458-5456-4645-b6c4-0662760765ed:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: renderer: NetworkManager
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: match:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: name: "wlp4s2"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: dhcp4: true
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: dhcp6: true
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: access-points:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: "Sams Pixel 8a":
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: auth:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: key-management: "psk"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: password: "sjhf3859"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: uuid: "bf81f458-5456-4645-b6c4-0662760765ed"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: name: "Sams Pixel 8a"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: passthrough:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: wifi-security.auth-alg: "open"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: ipv6.addr-gen-mode: "default"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: ipv6.ip6-privacy: "-1"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: proxy._: ""
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: networkmanager:
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: uuid: "bf81f458-5456-4645-b6c4-0662760765ed"
|
||||
/etc/netplan/90-NM-bf81f458-5456-4645-b6c4-0662760765ed.yaml: name: "Sams Pixel 8a"
|
||||
\n--- Current IP Configuration ---
|
||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 ::1/128 scope host noprefixroute
|
||||
valid_lft forever preferred_lft forever
|
||||
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
|
||||
link/ether d8:9e:f3:07:bf:05 brd ff:ff:ff:ff:ff:ff
|
||||
inet 192.168.20.27/24 brd 192.168.20.255 scope global noprefixroute enp0s31f6
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 2403:5804:f1cf:0:1607:4771:2ca5:68a0/64 scope global temporary dynamic
|
||||
valid_lft 7201sec preferred_lft 3600sec
|
||||
inet6 2403:5804:f1cf:0:cfcb:7b68:499:a6b3/64 scope global dynamic mngtmpaddr noprefixroute
|
||||
valid_lft 7201sec preferred_lft 3600sec
|
||||
inet6 fd3a:a6b:b9f:0:abae:763c:7dd7:162/64 scope global temporary dynamic
|
||||
valid_lft 584685sec preferred_lft 66095sec
|
||||
inet6 fd3a:a6b:b9f:0:62bf:88cc:df17:c0ff/64 scope global dynamic mngtmpaddr noprefixroute
|
||||
valid_lft 2592000sec preferred_lft 604800sec
|
||||
inet6 fe80::ab76:a154:b7ae:4825/64 scope link noprefixroute
|
||||
valid_lft forever preferred_lft forever
|
||||
3: wlp4s2: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
|
||||
link/ether 80:1f:02:4f:18:ae brd ff:ff:ff:ff:ff:ff
|
||||
4: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
|
||||
link/none
|
||||
inet 100.90.186.31/32 scope global tailscale0
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 fd7a:115c:a1e0::d101:ba97/128 scope global
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 fe80::6ddb:5b7c:f580:5ddc/64 scope link stable-privacy
|
||||
valid_lft forever preferred_lft forever
|
||||
3901
logs/07_deep_cli_scan.log
Normal file
3901
logs/07_deep_cli_scan.log
Normal file
File diff suppressed because it is too large
Load Diff
21
output/linux_user_folders.txt
Normal file
21
output/linux_user_folders.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
/home/sam/Desktop
|
||||
/home/sam/snap/code
|
||||
/home/sam/Arduino
|
||||
/home/sam/Music
|
||||
/home/sam/.arduino15/packages/arduino
|
||||
/home/sam/.arduino15/packages/esp32
|
||||
/home/sam/Documents
|
||||
/home/sam/Pictures
|
||||
/home/sam/.config/Code
|
||||
/home/sam/.cache/arduino
|
||||
/home/sam/Videos
|
||||
/home/sam/.rustup/downloads
|
||||
/home/sam/dotfiles
|
||||
/home/sam/Downloads
|
||||
8.0K /home/sam/Desktop
|
||||
20M /home/sam/Documents
|
||||
1.3G /home/sam/Downloads
|
||||
1.9M /home/sam/Pictures
|
||||
4.0K /home/sam/Music
|
||||
31M /home/sam/Videos
|
||||
96M /home/sam/Arduino
|
||||
117
results/configuration.nix
Normal file
117
results/configuration.nix
Normal file
@@ -0,0 +1,117 @@
|
||||
# NixOS Configuration: /results/configuration.nix
|
||||
# This file configures the core NixOS system.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
# This file will be generated by the NixOS installer.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# ---
|
||||
# NETWORKING
|
||||
# ---
|
||||
networking.hostName = "nixos-desktop";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Australia/Sydney";
|
||||
|
||||
# ---
|
||||
# USER ACCOUNTS
|
||||
# ---
|
||||
users.users.sam = {
|
||||
isNormalUser = true;
|
||||
description = "Sam";
|
||||
extraGroups = [ "networkmanager" "wheel" ]; # "wheel" allows sudo
|
||||
};
|
||||
|
||||
# ---
|
||||
# GRAPHICS & DESKTOP ENVIRONMENT
|
||||
# ---
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
# Enable KDE Plasma 5 Desktop Environment
|
||||
desktopManager.plasma5.enable = true;
|
||||
# Enable SDDM as the display manager
|
||||
displayManager.sddm.enable = true;
|
||||
# Use the proprietary NVIDIA drivers
|
||||
videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
# Enable OpenGL and Vulkan support
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
# Configure NVIDIA drivers for Hybrid Graphics (Intel + NVIDIA)
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
# Use the stable proprietary driver package
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
# Configure PRIME Render Offload
|
||||
prime = {
|
||||
sync.enable = true;
|
||||
# Set the PCI bus IDs for your GPUs (from lspci output)
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
|
||||
# ---
|
||||
# SOFTWARE PACKAGES
|
||||
# ---
|
||||
environment.systemPackages = with pkgs; [
|
||||
# --- Tier 1: Critical Applications & Services ---
|
||||
firefox thunderbird kitty neovim nushell vscode telegram-desktop
|
||||
# --- Tier 2: Development & CLI Tools ---
|
||||
git rustc cargo nodejs python3 gcc gnumake btop eza bat fzf ripgrep zoxide
|
||||
# --- Tier 3: Desktop & GUI Applications ---
|
||||
libreoffice flameshot vlc spotify timeshift
|
||||
];
|
||||
|
||||
# ---
|
||||
# SERVICES
|
||||
# ---
|
||||
# Enable sound with PipeWire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Enable CUPS for printing.
|
||||
services.printing.enable = true;
|
||||
|
||||
# ---
|
||||
# DISK MOUNTS
|
||||
# ---
|
||||
fileSystems."/mnt/ubuntu_storage_3TB" = {
|
||||
device = "/dev/disk/by-uuid/037a542c-6aa9-4b1f-ab2f-4b6922ab371f";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/mnt/windows-storage" = {
|
||||
device = "/dev/disk/by-uuid/063E316A3E315441";
|
||||
fsType = "ntfs-3g";
|
||||
options = [ "rw" "uid=1000" "gid=100" "umask=007" ];
|
||||
};
|
||||
|
||||
# Allow installation of unfree packages (like NVIDIA drivers)
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Set the system state version.
|
||||
system.stateVersion = "24.05";
|
||||
}
|
||||
145
results/configuration.nix.template
Normal file
145
results/configuration.nix.template
Normal file
@@ -0,0 +1,145 @@
|
||||
# NixOS Configuration Template
|
||||
# Path: results/configuration.nix.template
|
||||
#
|
||||
# This is a starting point for your new NixOS configuration.
|
||||
# Review and edit this file carefully.
|
||||
# You will use this file during the NixOS installation.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
# Path to this file will be /mnt/etc/nixos/hardware-configuration.nix
|
||||
# after the installation script generates it.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# ---
|
||||
# NETWORKING ---
|
||||
# ---
|
||||
networking.hostName = "nixos-desktop"; # Define your hostname.
|
||||
networking.networkmanager.enable = true;
|
||||
# networking.wireless.enable = true; # Uncomment for WiFi support.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Australia/Sydney"; # CHANGE THIS to your time zone, e.g. "Europe/Berlin"
|
||||
|
||||
# ---
|
||||
# USER ACCOUNTS ---
|
||||
# ---
|
||||
users.users.sam = {
|
||||
isNormalUser = true;
|
||||
description = "Sam";
|
||||
extraGroups = [ "networkmanager" "wheel" "docker" ]; # "wheel" allows sudo
|
||||
packages = with pkgs;
|
||||
[ # You can install user-specific packages here, but it's often better
|
||||
# to manage them system-wide below unless you have multiple users.
|
||||
];
|
||||
};
|
||||
|
||||
# ---
|
||||
# SOFTWARE PACKAGES ---
|
||||
# ---
|
||||
# List packages you want to install system-wide.
|
||||
# Refer to docs/02_software_migration_plan.md
|
||||
environment.systemPackages = with pkgs;
|
||||
[ # ---
|
||||
# Essentials ---
|
||||
# ---
|
||||
git
|
||||
wget
|
||||
curl
|
||||
|
||||
# ---
|
||||
# Desktop & GUI ---
|
||||
# ---
|
||||
firefox
|
||||
thunderbird
|
||||
libreoffice
|
||||
flameshot
|
||||
|
||||
# ---
|
||||
# Terminal & CLI Tools ---
|
||||
# ---
|
||||
kitty
|
||||
neovim
|
||||
nushell
|
||||
btop
|
||||
eza
|
||||
bat
|
||||
fzf
|
||||
|
||||
# ---
|
||||
# Development ---
|
||||
# ---
|
||||
gcc
|
||||
gnumake
|
||||
nodejs # Consider specifying a version, e.g., nodejs-20_x
|
||||
rustc
|
||||
cargo
|
||||
python3
|
||||
];
|
||||
|
||||
# ---
|
||||
# SERVICES & VIRTUALIZATION ---
|
||||
# ---
|
||||
|
||||
# Enable the Docker daemon.
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
# Enable sound with PipeWire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment the following.
|
||||
#jack.enable = true;
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# ---
|
||||
# DESKTOP ENVIRONMENT ---
|
||||
# ---
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
|
||||
# ---
|
||||
# DISK MOUNTS ---
|
||||
# ---
|
||||
# This is where we will mount your existing data drives.
|
||||
# The device paths (e.g., "/dev/disk/by-uuid/...") must be correct.
|
||||
# Use the output of `lsblk -f` on the live USB to get the right UUIDs.
|
||||
fileSystems."/mnt/ubuntu_storage_3TB" = {
|
||||
device = "/dev/disk/by-uuid/037a542c-6aa9-4b1f-ab2f-4b6922ab371f"; # This is sdd1 (ubuntu_storage_3)
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/mnt/windows-storage" = { # Renaming `/mnt/storage` to be clearer
|
||||
device = "/dev/disk/by-uuid/063E316A3E315441"; # This is sdb2
|
||||
fsType = "ntfs-3g";
|
||||
options = [ "rw" "uid=1000" "gid=100" "umask=007" ]; # Makes files user-writable
|
||||
};
|
||||
|
||||
# Add more entries here for other disks like sdc2 if needed.
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# System state version.
|
||||
system.stateVersion = "24.05"; # Or whatever version you install.
|
||||
|
||||
}
|
||||
144
results/generated_configuration.nix
Normal file
144
results/generated_configuration.nix
Normal file
@@ -0,0 +1,144 @@
|
||||
# NixOS Configuration - AUTO-GENERATED DRAFT
|
||||
# Path: results/generated_configuration.nix
|
||||
#
|
||||
# This file was auto-generated on $(date) based on system reconnaissance.
|
||||
# !!! IMPORTANT !!!
|
||||
# This is a DRAFT and a starting point. It WILL require manual review and editing.
|
||||
# - Verify all package names against the Nixpkgs repository.
|
||||
# - Check service options and configurations.
|
||||
# - Double-check all hardware and disk mount settings.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # This will be generated by the NixOS installer.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# --- NETWORKING ---
|
||||
# See logs/06_netplan_config.log for details.
|
||||
networking.hostName = "nixos-desktop"; # Set your desired hostname.
|
||||
networking.networkmanager.enable = true;
|
||||
# The scan found Tailscale running. You will likely want to enable it here.
|
||||
# services.tailscale.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Australia/Sydney"; # Please verify this is correct.
|
||||
|
||||
# --- USER ACCOUNTS ---
|
||||
users.users.sam = {
|
||||
isNormalUser = true;
|
||||
description = "Sam";
|
||||
extraGroups = [ "networkmanager" "wheel" "docker" ]; # "wheel" allows sudo. Add other groups if needed.
|
||||
};
|
||||
|
||||
# --- SOFTWARE PACKAGES (DERIVED FROM RECON LOG) ---
|
||||
environment.systemPackages = with pkgs; [
|
||||
# --- Essentials & CLI Tools (from history and manual install logs) ---
|
||||
git
|
||||
wget
|
||||
curl
|
||||
htop # btop is an alternative available in nix
|
||||
neovim
|
||||
zsh
|
||||
zoxide
|
||||
ripgrep
|
||||
fzf
|
||||
tree
|
||||
|
||||
# --- Rust & Go Environment ---
|
||||
rustc
|
||||
cargo
|
||||
go
|
||||
|
||||
# --- Python Environment ---
|
||||
python3
|
||||
|
||||
# --- Node.js Environment ---
|
||||
nodejs # Consider specifying a version, e.g., nodejs-20_x
|
||||
|
||||
# --- Desktop & GUI Applications ---
|
||||
firefox
|
||||
thunderbird
|
||||
vlc
|
||||
gimp
|
||||
inkscape
|
||||
obs-studio
|
||||
|
||||
# --- Manually Installed Tools (verify package names) ---
|
||||
arduino-cli
|
||||
lazygit
|
||||
ollama
|
||||
scrcpy
|
||||
|
||||
# --- Snap Packages (find equivalents in nixpkgs) ---
|
||||
# The following were installed as snaps. Find their NixOS equivalents.
|
||||
# - code (vscode)
|
||||
# - mqtt-explorer
|
||||
# - notepad-plus-plus (likely use notepadqq or similar)
|
||||
# - spotify
|
||||
# - telegram-desktop
|
||||
|
||||
# --- Other APT Packages (selection of common tools found) ---
|
||||
# A full list is in logs/04_nixos_recon.log. Add what you need.
|
||||
nmap
|
||||
minicom
|
||||
screen
|
||||
net-tools # for ifconfig, etc.
|
||||
gnome.gnome-tweaks
|
||||
|
||||
];
|
||||
|
||||
# --- SERVICES & VIRTUALIZATION ---
|
||||
|
||||
# Docker was found to be in use.
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
# Ollama service was running.
|
||||
# services.ollama.enable = true; # Find the correct module for Ollama on NixOS
|
||||
|
||||
# RustDesk service was running.
|
||||
# services.rustdesk.enable = true; # Find the correct module for RustDesk on NixOS
|
||||
|
||||
# Enable sound with PipeWire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# --- DESKTOP ENVIRONMENT ---
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
# --- DISK MOUNTS ---
|
||||
# !!! CRITICAL !!!
|
||||
# Update these with the correct UUIDs from your `lsblk -f` output
|
||||
# once you have booted the NixOS installer.
|
||||
fileSystems."/data" = {
|
||||
device = "/dev/disk/by-uuid/PLEASE_REPLACE_ME"; # UUID of Integral300 drive
|
||||
fsType = "ext4";
|
||||
options = [ "defaults" ];
|
||||
};
|
||||
|
||||
# --- MISC ---
|
||||
# Allow unfree packages for things like Chrome, Spotify, etc.
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# System state version. This should be set to the version of NixOS you install.
|
||||
system.stateVersion = "24.05";
|
||||
}
|
||||
120
results/generated_home.nix
Normal file
120
results/generated_home.nix
Normal file
@@ -0,0 +1,120 @@
|
||||
# NixOS Home Manager Configuration: /results/generated_home.nix
|
||||
# This file declaratively manages your user environment based on the discovered .zshrc.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Set a state version for compatibility
|
||||
home.stateVersion = "24.05";
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# ---
|
||||
# 1. ZSH SHELL & POWERLEVEL10K PROMPT
|
||||
# ---
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableSyntaxHighlighting = true;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" ]; # zsh-autosuggestions & syntax-highlighting are enabled above
|
||||
theme = "powerlevel10k/powerlevel10k";
|
||||
};
|
||||
shellAliases = {
|
||||
ls = "eza --icons --git";
|
||||
ll = "eza -l --icons --git";
|
||||
la = "eza -la --icons --git";
|
||||
tree = "eza --tree";
|
||||
# Note: 'batcat' from your .zshrc is typically packaged as 'bat' in NixOS
|
||||
cat = "bat --color=always --paging=never";
|
||||
};
|
||||
};
|
||||
|
||||
# Set Zsh as the default shell
|
||||
home.shell = pkgs.zsh;
|
||||
|
||||
# Enable Powerlevel10k theme
|
||||
programs.powerlevel10k = {
|
||||
enable = true;
|
||||
# Your Powerlevel10k config (~/.p10k.zsh) should be linked here if you have one.
|
||||
# For example: home.file.".p10k.zsh".source = ./p10k.zsh;
|
||||
};
|
||||
|
||||
# ---
|
||||
# 2. SHELL TOOLS & INTEGRATIONS
|
||||
# ---
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
programs.nvm = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# ---
|
||||
# 3. EDITORS & TERMINAL
|
||||
# ---
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true; # Sets EDITOR and VISUAL to nvim
|
||||
};
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
};
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# ---
|
||||
# 4. PACKAGES & LANGUAGES
|
||||
# ---
|
||||
home.packages = with pkgs; [
|
||||
# Core Utilities
|
||||
unzip zip p7zip htop wget curl nmap minicom screen tree
|
||||
|
||||
# Modern CLI Enhancements (from .zshrc and recon logs)
|
||||
eza bat lazygit yazi tealdeer navi carapace-bin
|
||||
|
||||
# Language Toolchains
|
||||
rustup go nodejs python3
|
||||
];
|
||||
|
||||
# ---
|
||||
# 5. ENVIRONMENT & API KEYS
|
||||
# ---
|
||||
# WARNING: Storing secrets in plain text is a security risk.
|
||||
# Consider using a tool like sops-nix for production environments.
|
||||
home.sessionVariables = {
|
||||
OPENAI_API_KEY = "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";
|
||||
TAVILY_API_KEY = "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";
|
||||
DEEPSEEK_API_KEY = "sk-26c66e4dd5b34017bd66f7aef748c625";
|
||||
};
|
||||
|
||||
# Add custom binary paths to your environment
|
||||
home.sessionPath = [
|
||||
# For the 'opencode' CLI tool
|
||||
"$HOME/.opencode/bin"
|
||||
];
|
||||
|
||||
# ---
|
||||
# AI TOOLS
|
||||
# ---
|
||||
programs.gemini-cli = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# ---
|
||||
# 6. DOTFILE MANAGEMENT
|
||||
# ---
|
||||
# This section is a placeholder for linking config files from a Git repo.
|
||||
# e.g., home.file.".config/nvim/init.vim".source = ./config/nvim/init.vim;
|
||||
}
|
||||
|
||||
138
scripts/01_system_recon.sh
Executable file
138
scripts/01_system_recon.sh
Executable file
@@ -0,0 +1,138 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Phase 1: System Reconnaissance Script
|
||||
# This script gathers information about the system's hardware, software, and user files.
|
||||
# It is designed to be non-destructive. All output is logged to a file.
|
||||
|
||||
# ---
|
||||
# Configuration ---
|
||||
# ---
|
||||
LOG_FILE="logs/01_system_recon.log"
|
||||
USER_HOME=$(eval echo ~${SUDO_USER:-$USER})
|
||||
|
||||
# ---
|
||||
# Helper Functions ---
|
||||
# ---
|
||||
log() {
|
||||
echo "$1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log_header() {
|
||||
log "\n"
|
||||
log "========================================================================"
|
||||
log "=== $1"
|
||||
log "========================================================================"
|
||||
}
|
||||
|
||||
run_and_log() {
|
||||
log "---
|
||||
Running command: $1 ---"
|
||||
eval "$1" 2>&1 | tee -a "$LOG_FILE"
|
||||
log "---
|
||||
Command finished ---"
|
||||
}
|
||||
|
||||
# ---
|
||||
# Main Execution ---
|
||||
# ---
|
||||
|
||||
# Initialize log file
|
||||
echo "System Reconnaissance Log - $(date)" > "$LOG_FILE"
|
||||
echo "----------------------------------------------------" >> "$LOG_FILE"
|
||||
|
||||
# 1. Disk and Filesystem Information
|
||||
log_header "DISK & FILESYSTEM INFORMATION"
|
||||
run_and_log "lsblk -f"
|
||||
run_and_log "df -hT"
|
||||
|
||||
# 2. Top-level User File Assessment
|
||||
log_header "USER FILE ASSESSMENT"
|
||||
log "Analyzing major directories in user home: $USER_HOME"
|
||||
log "This will show the total size of each main user folder."
|
||||
run_and_log "du -sh ${USER_HOME}/{Documents,Downloads,Music,Pictures,Videos,Desktop,dotfiles} 2>/dev/null"
|
||||
|
||||
# Note for the operator about deeper scans
|
||||
log "\n"
|
||||
log "NOTE: A full file listing is a long-running process."
|
||||
log "The following command can be used for a more detailed scan."
|
||||
log "It is recommended to run this in the background and review the output later."
|
||||
log "Example for a deeper scan (creates a separate log file):"
|
||||
log "# find ${USER_HOME}/Documents -type f > logs/documents_file_list.txt"
|
||||
log "\n"
|
||||
|
||||
|
||||
# 3. Software Inventory
|
||||
log_header "SOFTWARE INVENTORY"
|
||||
|
||||
# APT Packages
|
||||
log "---
|
||||
Checking for APT packages... ---"
|
||||
if command -v dpkg &> /dev/null; then
|
||||
run_and_log "dpkg --get-selections"
|
||||
else
|
||||
log "dpkg command not found. Skipping APT package scan."
|
||||
fi
|
||||
|
||||
# Snap Packages
|
||||
log "---
|
||||
Checking for Snap packages... ---"
|
||||
if command -v snap &> /dev/null; then
|
||||
run_and_log "snap list"
|
||||
else
|
||||
log "snap command not found. Skipping Snap package scan."
|
||||
fi
|
||||
|
||||
# Docker Information
|
||||
log_header "DOCKER INFORMATION"
|
||||
if command -v docker &> /dev/null; then
|
||||
log "---
|
||||
Docker Version ---"
|
||||
run_and_log "docker --version"
|
||||
log "---
|
||||
Docker Info (Configuration and Storage) ---"
|
||||
run_and_log "docker info"
|
||||
log "---
|
||||
Docker Containers (Running and Stopped) ---"
|
||||
run_and_log "docker ps -a"
|
||||
log "---
|
||||
Docker Images ---"
|
||||
run_and_log "docker images"
|
||||
log "---
|
||||
Docker Volumes ---"
|
||||
run_and_log "docker volume ls"
|
||||
else
|
||||
log "docker command not found. Skipping Docker scan."
|
||||
fi
|
||||
|
||||
|
||||
# 4. Development Environment & Servers
|
||||
log_header "DEV ENVIRONMENTS & SERVERS"
|
||||
|
||||
# Common Languages
|
||||
run_and_log "command -v rustc && rustc --version"
|
||||
run_and_log "command -v node && node --version"
|
||||
run_and_log "command -v python3 && python3 --version"
|
||||
run_and_log "command -v go && go version"
|
||||
run_and_log "command -v java && java --version"
|
||||
|
||||
# Common Servers
|
||||
log "---
|
||||
Checking for common server processes... ---"
|
||||
run_and_log "ps aux | grep -E 'apache2|nginx|httpd|snapcast' | grep -v grep"
|
||||
|
||||
log "---
|
||||
Checking for server config files... ---"
|
||||
run_and_log "ls -ld /etc/apache2 /etc/nginx /etc/snapserver.conf 2>/dev/null"
|
||||
|
||||
# Eclipse and Arduino/ESP-IDF
|
||||
log "---
|
||||
Searching for Eclipse Workspaces and Arduino/ESP-IDF projects... ---"
|
||||
log "This may take a moment..."
|
||||
# This find command is scoped to the user's home and looks for common markers of these dev environments.
|
||||
run_and_log "find ${USER_HOME} -maxdepth 4 \( -name '.project' -o -name 'platformio.ini' -o -name '*.ino' \) -print 2>/dev/null"
|
||||
|
||||
|
||||
log_header "RECONNAISSANCE COMPLETE"
|
||||
log "Log file saved to: $LOG_FILE"
|
||||
log "Please review the log file to plan the next phase of the migration."
|
||||
log "Remember to complete and verify your backups before proceeding."
|
||||
91
scripts/02_migrate_files.sh
Normal file
91
scripts/02_migrate_files.sh
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ---
|
||||
# Configuration ---
|
||||
# ---
|
||||
LOG_FILE="logs/02_file_migration.log"
|
||||
DRY_RUN=""
|
||||
SOURCE_HOME="/home/sam" # This should be the path where your old home is mounted
|
||||
TARGET_STAGING="/mnt/ubuntu_storage_3TB/migration_staging" # As per the guide
|
||||
|
||||
# Check for --dry-run flag
|
||||
if [ "$1" == "--dry-run" ]; then
|
||||
DRY_RUN="--dry-run"
|
||||
echo "---
|
||||
PERFORMING DRY RUN ---" | tee -a "$LOG_FILE"
|
||||
fi
|
||||
|
||||
# Safety check for root user
|
||||
if [ "$(id -u)" -eq 0 ] && [ "$2" != "--allow-root" ]; then
|
||||
echo "Running as root is not recommended. Use --allow-root to override."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ---
|
||||
# Helper Functions ---
|
||||
# ---
|
||||
log() {
|
||||
echo "$1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
run_rsync() {
|
||||
log "------------------------------------------------------------------------"
|
||||
log "Syncing $1..."
|
||||
# The --info=progress2 flag gives a cleaner total progress indicator.
|
||||
# The --exclude='/data' is critical to not re-copy existing data.
|
||||
rsync -avh --info=progress2 $DRY_RUN --exclude='/data' "$2" "$3"
|
||||
log "Finished syncing $1."
|
||||
log "------------------------------------------------------------------------"
|
||||
}
|
||||
|
||||
|
||||
# ---
|
||||
# Main Execution ---
|
||||
# ---
|
||||
# Initialize log file
|
||||
echo "File Migration Log - $(date)" > "$LOG_FILE"
|
||||
echo "----------------------------------------------------" >> "$LOG_FILE"
|
||||
|
||||
if [ -n "$DRY_RUN" ]; then
|
||||
log "Dry run mode enabled. No files will be changed."
|
||||
fi
|
||||
|
||||
log "Source directory: $SOURCE_HOME"
|
||||
log "Target staging directory: $TARGET_STAGING"
|
||||
|
||||
# Check if source directory exists
|
||||
if [ ! -d "$SOURCE_HOME" ]; then
|
||||
log "ERROR: Source directory $SOURCE_HOME does not exist. Mount your old home directory and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create target directory
|
||||
log "Creating target staging directory (if it doesn\'t exist)..."
|
||||
if [ -z "$DRY_RUN" ]; then
|
||||
mkdir -p "$TARGET_STAGING"
|
||||
fi
|
||||
|
||||
# ---
|
||||
# Migration Commands ---
|
||||
# ---
|
||||
# These commands will copy your main user folders from your old Ubuntu home
|
||||
# into the staging area. The structure is kept simple for later organization.
|
||||
# Note the trailing slash on the source to copy the *contents* of the directory.
|
||||
|
||||
run_rsync "Documents" "${SOURCE_HOME}/Documents/" "${TARGET_STAGING}/Documents/"
|
||||
run_rsync "Pictures" "${SOURCE_HOME}/Pictures/" "${TARGET_STAGING}/Pictures/"
|
||||
run_rsync "Music" "${SOURCE_HOME}/Music/" "${TARGET_STAGING}/Music/"
|
||||
run_rsync "Videos" "${SOURCE_HOME}/Videos/" "${TARGET_STAGING}/Videos/"
|
||||
run_rsync "Desktop" "${SOURCE_HOME}/Desktop/" "${TARGET_STAGING}/Desktop/"
|
||||
run_rsync "Downloads" "${SOURCE_HOME}/Downloads/" "${TARGET_STAGING}/Downloads/"
|
||||
run_rsync "Dotfiles" "${SOURCE_HOME}/dotfiles/" "${TARGET_STAGING}/dotfiles/"
|
||||
|
||||
# Add any other specific project directories you know of here. For example:
|
||||
# run_rsync "Arduino Projects" "${SOURCE_HOME}/Arduino/" "${TARGET_STAGING}/Arduino/"
|
||||
|
||||
log "\n"
|
||||
log "---
|
||||
File migration script finished. ---"
|
||||
log "Review the output above. If everything looks correct, you can run the script"
|
||||
log "again without the --dry-run flag to perform the actual file copy."
|
||||
log "The log has been saved to $LOG_FILE"
|
||||
146
scripts/03_find_and_sync_data.sh
Normal file
146
scripts/03_find_and_sync_data.sh
Normal file
@@ -0,0 +1,146 @@
|
||||
#!/bin/bash
|
||||
|
||||
# -- Configuration ---
|
||||
LOG_FILE="logs/03_find_and_sync_data.log"
|
||||
DRY_RUN=""
|
||||
SOURCE_WIN_DRIVE="/media/sam/8294CD2994CD2111"
|
||||
TARGET_DATA_DIR="/data"
|
||||
|
||||
# Check for --dry-run flag
|
||||
if [ "$1" == "--dry-run" ]; then
|
||||
DRY_RUN="--dry-run"
|
||||
echo "--- PERFORMING DRY RUN ---" | tee -a "$LOG_FILE"
|
||||
fi
|
||||
|
||||
# Helper function for logging
|
||||
log() {
|
||||
echo "$1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
run_rsync_dry_run() {
|
||||
local source_path="$1"
|
||||
local target_path="$2"
|
||||
local descriptive_name="$3"
|
||||
|
||||
log "------------------------------------------------------------------------"
|
||||
log "Preparing to sync: $descriptive_name"
|
||||
log "Source: $source_path"
|
||||
log "Target: $target_path"
|
||||
log "------------------------------------------------------------------------"
|
||||
|
||||
# Ensure target directory exists for rsync
|
||||
if [ ! -d "$target_path" ]; then
|
||||
log "Creating target directory: $target_path"
|
||||
if [ -z "$DRY_RUN" ]; then
|
||||
mkdir -p "$target_path"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use rsync -a (archive mode) for comprehensive copying, and -n for dry run.
|
||||
# The trailing slash on source_path copies contents, not the directory itself.
|
||||
rsync -avh --info=progress2 $DRY_RUN "${source_path}/" "${target_path}/" 2>&1 | tee -a "$LOG_FILE"
|
||||
log "Finished dry run for $descriptive_name."
|
||||
}
|
||||
|
||||
# Initialize log file
|
||||
echo "Data Discovery and Sync Log - $(date)" > "$LOG_FILE"
|
||||
echo "----------------------------------------------------" >> "$LOG_FILE"
|
||||
|
||||
if [ -n "$DRY_RUN" ]; then
|
||||
log "Dry run mode enabled. No files will be changed."
|
||||
fi
|
||||
|
||||
log "Source Windows Drive: $SOURCE_WIN_DRIVE"
|
||||
log "Target Data Directory: $TARGET_DATA_DIR"
|
||||
log ""
|
||||
|
||||
# --- Mapping Configuration (Source on Windows Drive -> Target in /data) ---
|
||||
# Each entry is: "source_path" "target_subdirectory_in_data" "descriptive_name"
|
||||
|
||||
# Personal Documents, Pictures, Music, Videos
|
||||
declare -a PERSONAL_FOLDERS=(
|
||||
"Users/sam/Documents" "personal/Documents" "Personal Documents"
|
||||
"Users/sam/Pictures" "personal/Pictures" "Personal Pictures"
|
||||
"Users/sam/Music" "personal/Music" "Personal Music"
|
||||
"Users/sam/Videos" "personal/Videos" "Personal Videos"
|
||||
"Users/sam/Downloads" "personal/Downloads" "Personal Downloads"
|
||||
)
|
||||
|
||||
# Web/Work Projects
|
||||
declare -a WORK_PROJECTS=(
|
||||
"xampp/htdocs" "work/htdocs" "XAMPP htdocs projects"
|
||||
"frei0r" "work/frei0r" "Frei0r Projects"
|
||||
# Add other common workspace/project folders here if known
|
||||
# e.g., "Users/sam/workspace" "work/workspace" "General Workspaces"
|
||||
)
|
||||
|
||||
# IoT Projects
|
||||
declare -a IOT_PROJECTS=(
|
||||
"Arduino" "iot/Arduino" "Arduino Projects" # Assuming there's an Arduino folder
|
||||
)
|
||||
|
||||
# Generic project folders to search for
|
||||
declare -a GENERIC_PROJECT_NAMES=(
|
||||
"Projects"
|
||||
"Code"
|
||||
"Dev"
|
||||
)
|
||||
|
||||
# --- Execute mappings ---
|
||||
|
||||
log "--- Processing Personal Folders ---"
|
||||
for ((i=0; i<${#PERSONAL_FOLDERS[@]}; i+=3)); do
|
||||
SOURCE="${SOURCE_WIN_DRIVE}/${PERSONAL_FOLDERS[i]}"
|
||||
TARGET="${TARGET_DATA_DIR}/${PERSONAL_FOLDERS[i+1]}"
|
||||
DESC="${PERSONAL_FOLDERS[i+2]}"
|
||||
if [ -d "$SOURCE" ]; then
|
||||
run_rsync_dry_run "$SOURCE" "$TARGET" "$DESC"
|
||||
else
|
||||
log "WARNING: Source directory not found: $SOURCE"
|
||||
fi
|
||||
done
|
||||
|
||||
log ""
|
||||
log "--- Processing Work Projects ---"
|
||||
for ((i=0; i<${#WORK_PROJECTS[@]}; i+=3)); do
|
||||
SOURCE="${SOURCE_WIN_DRIVE}/${WORK_PROJECTS[i]}"
|
||||
TARGET="${TARGET_DATA_DIR}/${WORK_PROJECTS[i+1]}"
|
||||
DESC="${WORK_PROJECTS[i+2]}"
|
||||
if [ -d "$SOURCE" ]; then
|
||||
run_rsync_dry_run "$SOURCE" "$TARGET" "$DESC"
|
||||
else
|
||||
log "WARNING: Source directory not found: $SOURCE"
|
||||
fi
|
||||
done
|
||||
|
||||
log ""
|
||||
log "--- Processing IoT Projects ---"
|
||||
for ((i=0; i<${#IOT_PROJECTS[@]}; i+=3)); do
|
||||
SOURCE="${SOURCE_WIN_DRIVE}/${IOT_PROJECTS[i]}"
|
||||
TARGET="${TARGET_DATA_DIR}/${IOT_PROJECTS[i+1]}"
|
||||
DESC="${IOT_PROJECTS[i+2]}"
|
||||
if [ -d "$SOURCE" ]; then
|
||||
run_rsync_dry_run "$SOURCE" "$TARGET" "$DESC"
|
||||
else
|
||||
log "WARNING: Source directory not found: $SOURCE"
|
||||
fi
|
||||
done
|
||||
|
||||
log ""
|
||||
log "--- Searching for Generic Project Folders ---"
|
||||
# This section tries to find common project-like folders directly under the Windows user profile
|
||||
# and prompts the user for action. For automation, we'll try to guess.
|
||||
# For now, we'll just list them to avoid making assumptions without user confirmation.
|
||||
|
||||
log "Searching for additional project-like folders under ${SOURCE_WIN_DRIVE}/Users/sam/ and similar paths:"
|
||||
find "${SOURCE_WIN_DRIVE}/Users/sam" -maxdepth 3 -type d \( -name "Projects" -o -name "Code" -o -name "Dev" -o -name "*workspace*" -o -name "*repos*" \) 2>/dev/null | while read -r found_dir; do
|
||||
log "Found potential project directory: $found_dir"
|
||||
# In a real interactive session, we'd ask the user where to put this.
|
||||
# For now, we just log its existence.
|
||||
done
|
||||
|
||||
log ""
|
||||
log "--- Data discovery and dry run finished. ---"
|
||||
log "Please review the log file: $LOG_FILE"
|
||||
log "If the output looks correct, run this script again with '--live' (or no flag) to perform the actual copy."
|
||||
log "Example: scripts/03_find_and_sync_data.sh"
|
||||
110
scripts/04_nixos_recon.sh
Normal file
110
scripts/04_nixos_recon.sh
Normal file
@@ -0,0 +1,110 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Phase 2: Deep System Reconnaissance for NixOS Migration
|
||||
# This script gathers detailed information about installed software, services,
|
||||
# configurations, and development environments on the current Ubuntu system.
|
||||
# All output is logged to a file for later analysis.
|
||||
|
||||
# --- Configuration ---
|
||||
LOG_FILE="logs/04_nixos_recon.log"
|
||||
USER_HOME=$(eval echo ~${SUDO_USER:-$USER})
|
||||
|
||||
# --- Helper Functions ---
|
||||
log() {
|
||||
echo -e "$1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log_header() {
|
||||
log "\n"
|
||||
log "========================================================================"
|
||||
log "=== $1"
|
||||
log "========================================================================"
|
||||
}
|
||||
|
||||
run_and_log() {
|
||||
log "--- Running command: $1 ---"
|
||||
eval "$1" 2>>"$LOG_FILE" | tee -a "$LOG_FILE"
|
||||
log "--- Command finished ---\n"
|
||||
}
|
||||
|
||||
# --- Main Execution ---
|
||||
|
||||
# Initialize log file
|
||||
echo "NixOS Migration - Deep Reconnaissance Log - $(date)" > "$LOG_FILE"
|
||||
echo "----------------------------------------------------" >> "$LOG_FILE"
|
||||
log "User Home Directory: $USER_HOME"
|
||||
|
||||
# 1. Software Inventory (APT & Snap)
|
||||
log_header "SOFTWARE INVENTORY"
|
||||
if command -v dpkg &> /dev/null; then
|
||||
run_and_log "dpkg --get-selections | grep -v deinstall"
|
||||
else
|
||||
log "dpkg command not found. Skipping APT package scan."
|
||||
fi
|
||||
|
||||
if command -v snap &> /dev/null; then
|
||||
run_and_log "snap list"
|
||||
else
|
||||
log "snap command not found. Skipping Snap package scan."
|
||||
fi
|
||||
|
||||
# 2. Systemd Services & Timers
|
||||
log_header "SYSTEMD SERVICES & TIMERS"
|
||||
log "--- Active System Services ---"
|
||||
run_and_log "systemctl list-units --type=service --state=running"
|
||||
log "--- All System Timers ---"
|
||||
run_and_log "systemctl list-timers --all"
|
||||
|
||||
log "\n--- Active User Services (if any) ---"
|
||||
# Check for user session bus to run user commands
|
||||
if [ -n "$XDG_RUNTIME_DIR" ]; then
|
||||
run_and_log "systemctl --user list-units --type=service --state=running"
|
||||
log "--- All User Timers (if any) ---"
|
||||
run_and_log "systemctl --user list-timers --all"
|
||||
else
|
||||
log "Could not connect to user session bus. Skipping user services/timers."
|
||||
fi
|
||||
|
||||
# 3. Docker Environment
|
||||
log_header "DOCKER ENVIRONMENT"
|
||||
if command -v docker &> /dev/null; then
|
||||
run_and_log "docker --version"
|
||||
run_and_log "docker info"
|
||||
run_and_log "docker ps -a --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}'"
|
||||
run_and_log "docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.Size}}'"
|
||||
run_and_log "docker volume ls"
|
||||
log "--- Searching for docker-compose files in home directory ---"
|
||||
run_and_log "find \"$USER_HOME\" -name \"*docker-compose.yml\" -o -name \"*compose.yml\" 2>/dev/null"
|
||||
else
|
||||
log "docker command not found. Skipping Docker scan."
|
||||
fi
|
||||
|
||||
# 4. Command-Line Environment & Scripts
|
||||
log_header "COMMAND-LINE TOOLS & SCRIPTS"
|
||||
log "--- Top 50 Most Used Commands from History ---"
|
||||
# This gives an idea of frequently used, un-packaged CLI tools
|
||||
if [ -f "$USER_HOME/.bash_history" ]; then
|
||||
run_and_log "cat $USER_HOME/.bash_history | sed 's/sudo //g' | awk '{print $1}' | sort | uniq -c | sort -rn | head -n 50"
|
||||
elif [ -f "$USER_HOME/.zsh_history" ]; then
|
||||
run_and_log "cat $USER_HOME/.zsh_history | sed 's/sudo //g' | awk '{print $1}' | sort | uniq -c | sort -rn | head -n 50"
|
||||
else
|
||||
log "Shell history file not found."
|
||||
fi
|
||||
|
||||
log "--- User Cron Jobs (crontab) ---"
|
||||
run_and_log "crontab -l"
|
||||
|
||||
log "--- Manually Installed Scripts & Binaries ---"
|
||||
log "Searching in /usr/local/bin, ~/bin, and ~/.local/bin..."
|
||||
run_and_log "ls -lA /usr/local/bin"
|
||||
if [ -d "$USER_HOME/bin" ]; then
|
||||
run_and_log "ls -lA \"$USER_HOME/bin\""
|
||||
fi
|
||||
if [ -d "$USER_HOME/.local/bin" ]; then
|
||||
run_and_log "ls -lA \"$USER_HOME/.local/bin\""
|
||||
fi
|
||||
|
||||
log_header "RECONNAISSANCE COMPLETE"
|
||||
log "Log file saved to: $LOG_FILE"
|
||||
log "This file provides a detailed snapshot of the system's software and configuration."
|
||||
log "Review it carefully to plan your configuration.nix and home-manager setup."
|
||||
Reference in New Issue
Block a user