Lenovo Thinkbook Windows 11 / Tumbleweed dual boot

The Lenovo ThinkBook 15 G3 has Windows 11 preinstalled. I intend to install Tumbleweed as a second option and follow this procedure: https://www.xda-developers.com/dual-boot-windows-11-linux/ Any comments?

Hi
I just blow away any windows install partition (making sure it’s activated first) as required and use the stock MS WinX/XI image to exclude all the manufacturers cruft, let windows update the drivers, get the rest from the manufacturers website…

It’s a gift and they will be happy with a custom install. I never dealt with a vendor install or a product key, but I understand that I need not worry about the product key: How to take the backup of product key in windows 10. Correct?

Hi
If it’s activated, then should not be an issue, also check the system BIOS as the key may also be there, I’ve used ProduKey for years but any app (I have a vbs script somewhere that works as well) should work…

Started Live Tumbleweed from USB:

Operating System: openSUSE Tumbleweed 20220823
KDE Plasma Version: 5.25.4
KDE Frameworks Version: 5.97.0
Qt Version: 5.15.5
Kernel Version: 5.19.2-1-default (64-bit)
Graphics Platform: X11
Processors: 16 × AMD Ryzen 7 5700U with Radeon Graphics
Memory: 13.5 GiB of RAM
Graphics Processor: AMD RENOIR
Manufacturer: LENOVO
Product Name: 21A4
System Version: ThinkBook 15 G3 ACL

Hi
You should try MicroOS-Desktop, low maintenance, install flatpacks, no need for packman as most of the codecs are built into the apps… I’m running it here on a HP laptop, works a treat.

I consider a triple boot.

Prerequisites

  1. Register Windows 11
  2. Creating a partition to dual-boot Linux: https://www.xda-developers.com/dual-boot-windows-11-linux/
  3. Disable fast boot: https://www.laptopmag.com/how-to/turn-off-fast-startup-on-windows-11
  4. Enter UEFI: hold shift key and restart Windows

Installation

  1. Write openSUSE-Tumbleweed-NET-x86_64-Snapshot20220825-Media.iso to USB stick
  2. Attach USB stick
  3. Press F1 during startup to enter UEFI
  4. In UEFI boot menu move openSUSE to top
  5. save changes and quit UEFI
  6. from grub boot menu select install

After installation being complete the notebook readily booted into KDE:

notebook:~ # efibootmgr 
**BootCurrent: 0003**
Timeout: 0 seconds
BootOrder: 0003,2001,0005,0000,2002,2003
Boot0000* openSUSE
Boot0001* EFI PXE 0 for IPv4 (7C-8A-E1-BF-FA-F3) 
Boot0002* EFI PXE 0 for IPv6 (7C-8A-E1-BF-FA-F3) 
**Boot0003* opensuse-secureboot**
Boot0005* Windows Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
notebook:~ # 
notebook:~ # fdisk -l
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SAMSUNG MZALQ512HBLU-00BL2              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 8EF8C5D6-797C-4139-87BA-22839738571F

Device             Start        End   Sectors  Size Type
/dev/nvme0n1p1      2048     534527    532480  260M EFI System
/dev/nvme0n1p2    534528     567295     32768   16M Microsoft reserved
/dev/nvme0n1p3    567296  793366527 792799232  378G Microsoft basic data
/dev/nvme0n1p4 998166528 1000214527   2048000 1000M Windows recovery environment
**/dev/nvme0n1p5 793366528  993972223 200605696 95.7G Linux filesystem**

Partition table entries are not in disk order.
notebook:~ # 
notebook:~ # lsblk -f
NAME        FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                                  
**├─nvme0n1p1 vfat   FAT32 SYSTEM_DRV  3CB4-2DE8                             220.4M    14% /boot/efi**
├─nvme0n1p2                                                                              
├─nvme0n1p3 ntfs         Windows-SSD F832B50732B4CBBE                                    
├─nvme0n1p4 ntfs         WINRE_DRV   8044B5C844B5C168                                    
**└─nvme0n1p5 btrfs                    d8767fb3-37a4-482a-8957-a84ff87dc5ea   87.4G     7% /var
                                                                                         /usr/local
                                                                                         /srv
                                                                                         /root
                                                                                         /opt
                                                                                         /home
                                                                                         /boot/grub2/x86_64-efi
                                                                                         /boot/grub2/i386-pc
                                                                                         /.snapshots
                                                                                         /**
notebook:~ # 
notebook:~ # zypper repos -E
# | Alias                            | Enabled | GPG Check | Priority | URI
--+----------------------------------+---------+-----------+----------+------------------------------------------------------
5 | packman                          | Yes     | (r ) Yes  |   90     | http://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/
1 | download.opensuse.org-non-oss    | Yes     | (r ) Yes  |   99     | http://download.opensuse.org/tumbleweed/repo/non-oss/
2 | download.opensuse.org-oss        | Yes     | (r ) Yes  |   99     | http://download.opensuse.org/tumbleweed/repo/oss/
3 | download.opensuse.org-tumbleweed | Yes     | (r ) Yes  |   99     | http://download.opensuse.org/update/tumbleweed/
notebook:~ # 
notebook:~ # inxi -zFm
System:
  Kernel: 5.19.2-1-default arch: x86_64 bits: 64 Console: pty pts/1 Distro: openSUSE Tumbleweed
    20220826
Machine:
  Type: Laptop System: LENOVO product: 21A4 v: ThinkBook 15 G3 ACL serial: <filter>
  Mobo: LENOVO model: LNVNB161216 v: SDK0T76530 WIN serial: <filter> UEFI: LENOVO
    v: GQCN29WW(V1.15) date: 11/04/2021
Battery:
  ID-1: BAT1 charge: 44.8 Wh (99.6%) condition: 45.0/45.0 Wh (100.0%)
Memory:
  RAM: total: 13.48 GiB used: 1.12 GiB (8.3%)
  Array-1: capacity: 64 GiB slots: 2 EC: None
  Device-1: DIMM 0 type: DDR4 size: 8 GiB speed: 3200 MT/s
  Device-2: DIMM 0 type: DDR4 size: 8 GiB speed: 3200 MT/s
CPU:
  Info: 8-core model: AMD Ryzen 7 5700U with Radeon Graphics bits: 64 type: MT MCP cache:
    L2: 4 MiB
  Speed (MHz): avg: 1450 min/max: 1400/4370 cores: 1: 1800 2: 1400 3: 1400 4: 1400 5: 1400
    6: 1400 7: 1400 8: 1400 9: 1400 10: 1400 11: 1400 12: 1400 13: 1400 14: 1400 15: 1400 16: 1800
Graphics:
  Device-1: AMD Lucienne driver: amdgpu v: kernel
  Device-2: IMC Networks Integrated Camera type: USB driver: uvcvideo
  Display: x11 server: X.org v: 1.21.1.4 with: Xwayland v: 22.1.3 driver: X:
    loaded: modesetting unloaded: fbdev,vesa gpu: amdgpu tty: 238x52 resolution: 1920x1080
  Message: GL data unavailable in console for root.
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio driver: snd_hda_intel
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor driver: N/A
  Device-3: AMD Family 17h/19h HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.19.2-1-default running: yes
  Sound Server-2: PipeWire v: 0.3.56 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169
  IF: eno1 state: down mac: <filter>
  Device-2: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter driver: mt7921e
  IF: wlp4s0 state: up mac: <filter>
Bluetooth:
  Device-1: Foxconn / Hon Hai Wireless_Device type: USB driver: btusb
  Report: rfkill ID: hci0 state: up address: see --recommends
Drives:
  Local Storage: total: 476.94 GiB used: 6.75 GiB (1.4%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZALQ512HBLU-00BL2 size: 476.94 GiB
Partition:
  ID-1: / size: 95.66 GiB used: 6.71 GiB (7.0%) fs: btrfs dev: /dev/nvme0n1p5
  ID-2: /boot/efi size: 256 MiB used: 35.6 MiB (13.9%) fs: vfat dev: /dev/nvme0n1p1
  ID-3: /home size: 95.66 GiB used: 6.71 GiB (7.0%) fs: btrfs dev: /dev/nvme0n1p5
  ID-4: /opt size: 95.66 GiB used: 6.71 GiB (7.0%) fs: btrfs dev: /dev/nvme0n1p5
  ID-5: /var size: 95.66 GiB used: 6.71 GiB (7.0%) fs: btrfs dev: /dev/nvme0n1p5
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 40.8 C mobo: N/A gpu: amdgpu temp: 38.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 299 Uptime: 0h 12m Init: systemd Shell: Bash inxi: 3.3.20
notebook:~ # 

Tried to install ProduKey and got some obscure warnings. Tried “2. Use PowerShell in Windows 11” of Find Your Windows 11 Product Key | 3 Simple Methods Saved product key to USB-Stick and installed from iso: https://forums.opensuse.org/showthread.php/574463-woeusb-fails-with-unknown-filesystem-type-ntfs-3g Formatted Microsoft basic data and installed:

notebook:~ # fdisk -l
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SAMSUNG MZALQ512HBLU-00BL2              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 8EF8C5D6-797C-4139-87BA-22839738571F

Device             Start        End   Sectors  Size Type
/dev/nvme0n1p1      2048     534527    532480  260M EFI System
/dev/nvme0n1p2    534528     567295     32768   16M Microsoft reserved
**/dev/nvme0n1p3    567296  793366527 792799232  378G Microsoft basic data**
/dev/nvme0n1p4 998166528 1000214527   2048000 1000M Windows recovery environment
/dev/nvme0n1p5 793366528  993972223 200605696 95.7G Linux filesystem

Partition table entries are not in disk order.
notebook:~ #

Hi
Looks good, no thought on setting the nvme device to 4096/4096 sector sizes (which should be native for an nvme)?

https://www.dell.com/support/kbdoc/en-us/000146908/why-4k-drive-recommended-for-os-installation


Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 250051158 sectors
Disk model: SPCC M.2 PCIe SSD                       
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt

**notebook:~ #** inxi -D 
**Drives:**
  **Local Storage:****total:** 476.94 GiB **used:** 9.14 GiB (1.9%) 
  **ID-1:** /dev/nvme0n1 **vendor:** Samsung **model:** MZALQ512HBLU-00BL2 **size:** 476.94 GiB 
**notebook:~ #**

Sector sizes:

**notebook:~ #** cat /sys/class/block/nvme0n1/queue/physical_block_size 
512 
**notebook:~ #** cat /sys/class/block/nvme0n1/queue/logical_block_size  
512 
**notebook:~ #**

Hi
Run the following command to see if it can be set…


zypper in nvme-cli

nvme id-ns /dev/nvme0n1 | egrep "nlbaf|lbaf"

nlbaf   : 1
nulbaf  : 0
lbaf  0 : ms:0   lbads:9  rp:0x2 
lbaf  1 : ms:0   lbads:12 rp:0x1 (in use)

smartctl -a /dev/nvme0
.....
....
/CSupported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 -     512       0         2
 1 +    4096       0         1

In my case lbaf 0 is 512 and 1 is 4096. and the smart output also shows in use…

Samsung SSDs have only logical block size 512:

notebook:~ # nvme id-ns /dev/nvme0n1 | egrep "nlbaf|lbaf"
nlbaf   : 0
nulbaf  : 0
lbaf  0 : ms:0   lbads:9  rp:0 (in use)
notebook:~ # smartctl -a /dev/nvme0n1|grep -A3 'Supported LBA Sizes'
Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

notebook:~ # 

For compatibility addressing is based on logical block size. Data transfer is based on physical block size: Advanced Format - ArchWiki

erlangen:~ # inxi -D
Drives:
  Local Storage: total: 10.92 TiB used: 3.95 TiB (36.2%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 970 EVO Plus 2TB
    size: 1.82 TiB
  ID-2: /dev/sda vendor: Seagate model: ST8000VN004-2M2101 size: 7.28 TiB
  ID-3: /dev/sdc vendor: Crucial model: CT2000BX500SSD1 size: 1.82 TiB
erlangen:~ # 

The Seagate HDD has:

erlangen:~ # hdparm -I /dev/sda | grep 'Sector size:'
        Logical  Sector size:                   512 bytes  Supported: 512 4096 ]
        Physical Sector size:                  4096 bytes
erlangen:~ # 

Using logical sector size 4096 would work, but performance gain wouldn’t be noticeable, as the drive uses conventional magnetic recording.

Hi
Interesting, thought it was pretty standard on nvme devices… Not my preferred brand as the earlier issues and blacklisting of certain devices.

Yep:

    /* devices that don't properly handle queued TRIM commands */ 
    { "Micron_M500IT_*",        "MU01",    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Micron_M500_*",        NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Crucial_CT*M500*",        NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Micron_M5[15]0_*",        "MU01",    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Crucial_CT*M550*",        "MU01",    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Crucial_CT*MX100*",        "MU01",    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Samsung SSD 840 EVO*",    NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_NO_DMA_LOG |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "**Samsung SSD 840***",        NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "**Samsung SSD 850***",        NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },
    { "Samsung SSD 860*",        NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM |
                        ATA_HORKAGE_NO_NCQ_ON_ATI },
    { "Samsung SSD 870*",        NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM |
                        ATA_HORKAGE_NO_NCQ_ON_ATI },
    { "FCCT*M500*",            NULL,    ATA_HORKAGE_NO_NCQ_TRIM |
                        ATA_HORKAGE_ZERO_AFTER_TRIM },

I am using both the 840 and 850, but never experienced any problems. SSDs work well with defaults: Solid state drive - ArchWiki

**notebook:~ #** grep '/ ' /etc/fstab  
UUID=d8767fb3-37a4-482a-8957-a84ff87dc5ea  **/ **                      btrfs  defaults                      0  0 
**notebook:~ #** findmnt / 
TARGET SOURCE                                   FSTYPE OPTIONS 
/      /dev/nvme0n1p5/@/.snapshots/1/snapshot] btrfs  rw,relatime,ssd,space_cache=v2,subvolid=266,subvol=/@/.snapshots/1/snapshot 
**notebook:~ #**